一、自我介绍
大家好,我现在是研究生在读,目前处于研二下,正好是求职找工作的阶段,本科念的是测控技术与仪器,属于工科,研究生读的是电子信息(控制工程),如今的科研方向是深度学习在工业负荷预测中的应用。掌握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和计算机考研的课程知识(数据结构、计算机组成原理、计算机网络,操作系统),同时学习行测申论,无领导小组面试和半结构化面试。掌握一门技术确保我可以在秋招中找到一个好工作,而沟通能力,演讲写作的输出能力可以让我今后过得更加舒服。加油!期待自己能找个令我自己满意的国企工作,硕士顺利毕业!