首页 > 其他分享 >这是我在51CTO博客的第一篇博文

这是我在51CTO博客的第一篇博文

时间:2023-03-05 18:32:40浏览次数:43  
标签:circler right 51CTO 第一篇 博文 cv2 topLeftr int topLeftl

一、自我介绍

大家好,我现在是研究生在读,目前处于研二下,正好是求职找工作的阶段,本科念的是测控技术与仪器,属于工科,研究生读的是电子信息(控制工程),如今的科研方向是深度学习在工业负荷预测中的应用。掌握Python,Java的基本语法,接触过一个关于双目视觉的项目。


二、技术分享

入手Python和Java是学的《Head First Python/Java》这两本书,分享一下关于opencv检测物体尺寸的代码(基于python)

import cv2
import numpy as np
from skimage import img_as_ubyte
from math import sqrt


originr = cv2.imread('right_circle_1.jpg') # 打开输入图像,默认为BGR格式
templater = cv2.imread('template.jpg') # 打开模板图像

img_grayr = cv2.cvtColor(originr, cv2.COLOR_BGR2GRAY, dstCn=1) # 转换为单通道灰度图像
temp_grayr = cv2.cvtColor(templater, cv2.COLOR_BGR2GRAY, dstCn=1)

thr, twr = temp_grayr.shape[::]
resr = cv2.matchTemplate(img_grayr,temp_grayr,cv2.TM_SQDIFF)
minValr, maxValr, minLocr, maxLocr = cv2.minMaxLoc(resr)
topLeftr = minLocr
bottomRightr = (topLeftr[0] + twr, topLeftr[1] + thr)
cv2.rectangle(originr,topLeftr, bottomRightr, 255, 2)

right = img_grayr[topLeftr[1]+2:topLeftr[1]-3 + thr,topLeftr[0]+int(twr/2):topLeftr[0] + twr-2]
right = img_as_ubyte(right)


# 降噪(模糊处理用来减少瑕疵点)
right = cv2.blur(right,(5,5))

# param1的具体实现,用于边缘检测
canny = cv2.Canny(right,80,100)

# 霍夫变换圆检测
circlesr = cv2.HoughCircles(right,cv2.HOUGH_GRADIENT,1,300,param1=1,param2=1,minRadius=25,maxRadius=55)

# 根据检测到圆的信息,画出每一个圆
for circler in circlesr[0]:
# 圆的基本信息
# print('圆心坐标:', (circler[0], circler[1]))
# print('圆的半径:', circler[2])
# 坐标行列(就是圆心)
xr = int(circler[0])
yr = int(circler[1])
# 半径
rr = int(circler[2])
# 在原图用指定颜色圈出圆,参数设定为int所以圈画存在误差
imgr = cv2.circle(right, (xr, yr), rr, (0, 0, 255), 1, 8, 0)

upper_pixelr = (topLeftr[0]+twr/2+circler[0],topLeftr[1]+circler[1]-rr)
print('upper_pixelr',upper_pixelr)

lower_pixelr = (topLeftr[0]+twr/2+circler[0],topLeftr[1]+circler[1]+rr)
print('lower_pixelr',lower_pixelr)


originl = cv2.imread('left_circle_1.jpg') # 打开输入图像,默认为BGR格式
templatel = cv2.imread('template.jpg') # 打开模板图像

img_grayl = cv2.cvtColor(originl, cv2.COLOR_BGR2GRAY, dstCn=1) # 转换为单通道灰度图像
temp_grayl = cv2.cvtColor(templatel, cv2.COLOR_BGR2GRAY, dstCn=1)

thl, twl = temp_grayl.shape[::]
resl = cv2.matchTemplate(img_grayl,temp_grayl,cv2.TM_SQDIFF)
minVall, maxVall, minLocl, maxLocl = cv2.minMaxLoc(resl)
topLeftl = minLocl
bottomRightl = (topLeftl[0] + twl, topLeftl[1] + thl)
cv2.rectangle(originl,topLeftl, bottomRightl, 255, 2)

left = img_grayl[topLeftl[1]+2:topLeftl[1]-3 + thl,topLeftl[0]+int(twl/2):topLeftl[0] + twl-2]
left = img_as_ubyte(left)


# 降噪(模糊处理用来减少瑕疵点)
left = cv2.blur(left,(5,5))

# param1的具体实现,用于边缘检测
canny = cv2.Canny(left,80,100)

# 霍夫变换圆检测
circlesl = cv2.HoughCircles(left,cv2.HOUGH_GRADIENT,1,300,param1=1,param2=1,minRadius=25,maxRadius=50)

# 根据检测到圆的信息,画出每一个圆
for circlel in circlesl[0]:
# 圆的基本信息
# print('圆心坐标:', (circler[0], circler[1]))
# print('圆的半径:', circler[2])
# 坐标行列(就是圆心)
xl = int(circlel[0])
yl = int(circlel[1])
# 半径
rl = int(circlel[2])
# 在原图用指定颜色圈出圆,参数设定为int所以圈画存在误差
imgl = cv2.circle(right, (xl, yl), rl, (0, 0, 255), 1, 8, 0)

upper_pixell = (topLeftl[0]+twl/2+circlel[0],topLeftl[1]+circlel[1]-rl)
print('upper_pixell',upper_pixell)

lower_pixell = (topLeftl[0]+twl/2+circlel[0],topLeftl[1]+circler[1]+rl)
print('lower_pixell',lower_pixell)


三、立一个flag!

        目前也是处于找工作和确保硕士毕业论文完成的紧张状态,想找一个关于互联网软件开发的工作,在学习JAVASE和计算机考研的课程知识(数据结构、计算机组成原理、计算机网络,操作系统),同时学习行测申论,无领导小组面试和半结构化面试。掌握一门技术确保我可以在秋招中找到一个好工作,而沟通能力,演讲写作的输出能力可以让我今后过得更加舒服。加油!期待自己能找个令我自己满意的国企工作,硕士顺利毕业!


标签:circler,right,51CTO,第一篇,博文,cv2,topLeftr,int,topLeftl
From: https://blog.51cto.com/u_15993338/6101573

相关文章

  • Freya的第一篇博客
    大家好呀,这是我的第一篇博客,会有许多不足之处,希望多多包涵。虚拟机(VirtualMachine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统......
  • 【摸鱼计划】3月份,快来任选7/21天发博文
    摸鱼计划系列活动又跟大家见面了。我们活动规则不变,福利升级!3月份,继续把工作学习中的bug处理、碎片知识,统统记录到博客里。留下自己在技术之路的成长足迹。【活动时间】发文......
  • 第一篇博客
    浅浅记录一下到现在学过的语言:printf("HelloWorld");cout<<HelloWorld;System.out.println("HelloWorld"); ......
  • 我的第一篇博客
    我听说博客一词已经有很多年了,但一直没有注册过这个神奇的东西,应为它和我以前的工作生活太远了.最近一两年应为自身需要,学了一些跟计算机有关的东西,在学习的过程中,发......
  • 2023.2.21 我的第一篇博客——软件工程学习心得体会
    今天是我第一次在博客园写博客,本人目前是上海海洋大学软件工程系大二在读,第一篇博客就聊聊我这一年半对软件工程学习的感想吧。编程语言方面,大一学习了C和C++,大二上学期学......
  • 51CTO博客意见反馈处【2023版】
    我们要以博客的作者和读者的痛点为变革的核心!关注写作体验、内容分发、移动端体验和知识变现等;提升阅读体验,提高读者和作者的沟通效率。为了给大家提供更好的创作、阅读体......
  • 第一篇博客--关于软件工程
    这个是我的第一篇博客,刚刚步入大二下学习专业课的学习,从这学期开始,我决定用写博客的方式,记录我的学习历程。   关于软件工程,上学期已经学过软件工程导论和相关设计......
  • 第一篇:前端基础之HTML
    前端简介什么是前端"""前端即网路前台部分,运行在pc端、移动端等浏览器上展现给用户浏览的网页任何与用户直接打交道的操作界面都可以称之为前端后端指的是与前端工程......
  • 第一篇:Web框架推导
    纯手工撸web框架importsocketserver=socket.socket()server.bind(('127.0.0.1',8080))server.listen(5)whileTrue:conn,addr=server.accept()dat......
  • 我的第一篇博客
    尝试写写博客,记录下自己学习的点滴。先熟悉下编辑器使用吧,哈哈。#include<stdio.h>intmain(){printf("hello51CTO!\n");return0;}......