日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【学习笔记】opencv的python接口 轮廓特征值 滚动条控制阈值参数

發布時間:2024/9/30 python 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【学习笔记】opencv的python接口 轮廓特征值 滚动条控制阈值参数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

滾動條控制閾值和閾值的處理方式

控制thres中的方式和閾值

import cv2img = cv2.imread("p7.jpg") #img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) type = 0#閾值的處理方式 value = 0#使用的閾值 def ontype(a):type = cv2.getTrackbarPos("Type","j")value = cv2.getTrackbarPos("tValue","j")ret,dst = cv2.threshold(img,value,255,type)cv2.imshow("j",dst)def onvalue(a):type = cv2.getTrackbarPos("Type", "j")value = cv2.getTrackbarPos("tValue", "j")ret, dst = cv2.threshold(img, value, 255, type)cv2.imshow("j", dst)cv2.imshow("j",img) cv2.createTrackbar("Type","j",0,4,ontype) cv2.createTrackbar("tValue","j",0,255,onvalue) if cv2.waitKey(0) == 27:cv2.destroyWindow()

輪廓特征值

  • minMaxLoc的參數:圖片須為單通道,mask為掩膜??梢杂盟玫街付ǜ信d趣區域的最值。
  • findNonZero:獲取一個輪廓點的位置(一般來說輪廓的像素點為非零值)
img = cv2.imread("deng.png") img2 = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) rst,dst = cv2.threshold(img2,250,255,0) conters = cv2.findContours(dst,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)[0] img3 = cv2.drawContours(img.copy(),conters,-1,(100,222,255),3) mask = np.zeros(img2.shape,dtype=np.uint8) mask = cv2.drawContours(mask,conters,-1,(100,222,255),3) loc2 = cv2.bitwise_and(mask,img2) loc = cv2.bitwise_and(img,img3) minval,maxval,minloc,maxloc = cv2.minMaxLoc(img2,mask=mask) print(maxloc) cv2.imshow("and",loc) cv2.imshow("and2",loc2) cv2.imshow("j",img3)

橢圓擬合

之前都是矩形,現在用橢圓擬合
上面的代碼不變,加上這個:

ellipse = cv2.fitEllipse(conters[1]) cv2.ellipse(loc2,ellipse,(0,0,255),2) cv2.ellipse(img2,ellipse,(0,0,255),2) cv2.imshow(str(0),img2) # cv2.imshow("and",loc) cv2.imshow("and2",loc2)

提取顏色,用掩膜控制參數:

進行了一些開閉運算,不過感覺對這個圖片來說沒必要

img = cv2.imread("deng.png") cv2.imshow("i",img) kenal = np.ones((10,10),np.uint8) img = cv2.morphologyEx(img,cv2.MORPH_OPEN,kenal) img = cv2.morphologyEx(img,cv2.MORPH_CLOSE,kenal) hsvimg = cv2.cvtColor(img,cv2.COLOR_BGR2HSV) lower_red = np.array((150, 23, 70))upper_red = np.array([180, 255, 255]) mask1 = cv2.inRange(hsvimg,lower_red,upper_red) lower_red2 = np.array((0, 43, 35))upper_red2 = np.array([11, 255, 255]) mask2 = cv2.inRange(hsvimg,lower_red2,upper_red2) mask = mask1+mask2 img0 = cv2.bitwise_and(img,img,mask=mask)cv2.imshow(str(0),img0)

獲取一個特定點的閾值

今天才想到可以獲取一個特定點的閾值,天哪,之前還試試試好久,浪費好多時間阿

img = cv2.imread("cv.png") cv2.imshow("i",img) kenal = np.ones((10,10),np.uint8) hsvimg = cv2.cvtColor(img,cv2.COLOR_BGR2HSV) def gethsv(event,x,y,flags,params):if event == cv2.EVENT_LBUTTONDOWN:print(hsvimg[x,y])cv2.imshow("hi",hsvimg) cv2.setMouseCallback("hi",gethsv)



存在下標溢出報錯。

總結

以上是生活随笔為你收集整理的【学习笔记】opencv的python接口 轮廓特征值 滚动条控制阈值参数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。