python-opencv|python-opencv 关于ny.array的创建以及轮廓的查找
import numpy as np
import cv2
if __name__ == '__main__':
import sys
try: fn = sys.argv[1]
except: fn = 'E:\\1.BMP'
print __doc__
global m#全局变量
def callback(*argv):
m=cv2.getTrackbarPos('select', 'forshow')
forshow=np.zeros((h,w,3),np.uint8)#cv2接口创建矩阵
cv2.drawContours( forshow, contours0,m, (0,0,255), 1, cv2.CV_AA, hierarchy,3)#m为所描绘的轮廓 m = hierarchy[idx][0]
cv2.imshow('forshow',forshow)
img = cv2.imread(fn, 2)
h,w=img.shape[0:2]
contours0, hierarchy = cv2.findContours( img.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)#参数分别为src,mode,method
#CV_RETR_TREE 即所有轮廓 CV_RETR_EXTERNAL 外部轮廓
#CV_CHAIN_APPROX_SIMPLE 只留下脚点 CV_CHAIN_APPROX_NONE 所有点
forshow=np.zeros((h,w,3), np.uint8)
cv2.namedWindow('forshow')
cv2.createTrackbar('select', 'forshow', 0, 20, callback)#设置回调
m=cv2.getTrackbarPos('select', 'forshow')
cv2.drawContours( forshow, contours0,m, (0,0,255), 1, cv2.CV_AA, hierarchy,3)#m为所描绘的轮廓 m = hierarchy[idx][0]
cv2.imshow('forshow',forshow)
print hierarchy
while True:
ch = 0xFF & cv2.waitKey(0)
if ch == 27:
break
cv2.destroyAllWindows()
【python-opencv|python-opencv 关于ny.array的创建以及轮廓的查找】通过回调函数callback来改变golba m的值,从而描绘我们所需要的轮廓
推荐阅读
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- 四首关于旅行记忆的外文歌曲
- 醒不来的梦
- 关于自我为中心的一点感想
- 「按键精灵安卓版」关于全分辨率脚本的一些理解(非游戏app)
- 关于Ruby的杂想
- 关于读书的思考
- 关于this的一些问题(1)
- 《声之形》
- 关于如何沟通的1/2/3