python opencv实时显示测量数据_python OpenCV 宽度测量
機(jī)器視覺第六次實(shí)驗(yàn)
一、實(shí)驗(yàn)?zāi)康?/p>
通過OpenCV第六次進(jìn)行實(shí)驗(yàn),對(duì)圖片進(jìn)行寬度測(cè)量。
二、實(shí)驗(yàn)內(nèi)容
對(duì)圖片進(jìn)行寬度測(cè)量。
三、實(shí)驗(yàn)過程
我使用的是python語言+openCV對(duì)圖片進(jìn)行寬度測(cè)量的功能。
1)讀取圖片
使用imread()函數(shù)讀取圖片,使用imshow()函數(shù)顯示圖片,waitKey()函數(shù)含義為按下任意鍵繼續(xù);
代碼實(shí)例:
img = cv2.imread("img1.png")
cv2.imshow("img",img)
cv2.waitKey(0)
圖3.1讀取的圖片
2)截取測(cè)量區(qū)域
實(shí)例代碼:
#截取目標(biāo)區(qū)域
recimg = img[80:236, 120:238]
cv2.imshow("img",recimg)
cv2.waitKey()
圖3.2截取的測(cè)量區(qū)域
3)二值化處理
使用threshold()函數(shù)進(jìn)行圖片反色:
實(shí)例代碼:
#二值化處理
ret, th = cv2.threshold(recimg, 80, 255, cv2.THRESH_BINARY_INV)
cv2.imshow("img",th)
cv2.waitKey()
圖3.3二值化處理圖
4)邊緣檢測(cè)、圖像反色
輸入的代碼:
# 邊緣檢測(cè)、圖片反色
img1 = cv2.Canny(recimg, 100, 200)
img1 = 255 - cv2.cvtColor(img1, cv2.COLOR_BGR2RGB)
img2 = cv2.cvtColor(img1, cv2.COLOR_RGB2GRAY)
img2 = cv2.cvtColor(255 - th, cv2.COLOR_RGB2GRAY)
cv2.imshow("img",img2)
cv2.waitKey()
圖3.4反色后得到的圖片
5)邊緣檢測(cè),框出物體的輪廓
實(shí)例代碼:
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnt = contours[0]
x, y, w, h = cv2.boundingRect(cnt)
6)繪制直線
實(shí)例代碼:
# 繪制直線
cv2.line(img1, (x, y), (x + w, y), (0,255,0), 3, 5)
cv2.line(img1, (x, y+h), (x + w, y+h), (0, 255, 0), 3, 5)
img[80:236, 120:238] = img1
7)圖片上添加寬度大小
實(shí)例代碼:
cv2.putText(img,'width:'+str(w),(10,30),cv2.FONT_HERSHEY_COMPLEX,1,(0,0,255),1)
圖3.5寬度測(cè)量圖
四、實(shí)驗(yàn)中的錯(cuò)誤
1)寬度測(cè)量的值需要寫入圖片,開始代碼如下:
cv2.putText(img,'width:'+str(w),(10,30),font,1,(0,0,255),1)一直報(bào)如下錯(cuò):
圖4.1寫入文字報(bào)錯(cuò)
解決方案:將font 修改為以下代碼:cv2.FONT_HERSHEY_COMPLEX
圖4.2解決填入寬度問題
2)我們需要一步步實(shí)驗(yàn)在圖片上的最佳位置填入文字和寬度。
五、實(shí)驗(yàn)總結(jié)
學(xué)習(xí)了OpenCV的寬度測(cè)量,遇到了作業(yè)問題自己解決了,鍛煉了自己的能力。
總結(jié)
以上是生活随笔為你收集整理的python opencv实时显示测量数据_python OpenCV 宽度测量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: snipaste滚动截图方法_百度终于良
- 下一篇: spring中的设计模式_面试官:来给我