python - 如何使用opencv和Python在图像的特定区域找到轮廓?
问题描述
我想在特定区域找到轮廓,如您所见,我使用蒙版,因为我只寻找红色:
while(True):
_, frame = cap.read()
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
a, b = 0, 0
height, width, layers = frame.shape
start_height = height - height
left_x = width - 500
#right_area = frame[y:y+height, x:x+300]
#left_area = frame[y:y+height,]
black_min = np.array([0, 0, 0], np.uint8)
black_max = np.array([179, 255, 70], np.uint8)
red_min = np.array([0, 70, 50], np.uint8)
red_max = np.array([20, 255, 255], np.uint8)
red1 = np.array([170, 70, 50], np.uint8)
red2 = np.array([180, 255, 255], np.uint8)
red_mask = cv2.inRange(hsv, red1, red2)
red_mask2 = cv2.inRange(hsv, red_min, red_max)
kernel = np.ones((7, 7), "uint8")
red_mask = cv2.dilate(red_mask, kernel)
res_red = cv2.bitwise_and(frame, frame, mask=red_mask)
red_mask2 = cv2.dilate(red_mask2, kernel)
res_red2 = cv2.bitwise_and(frame, frame, mask=red_mask2)
area1 = frame[a:a + height, b:b + 300]
area2 = frame[a:a + height, left_x:left_x + 500]
cnts, _ = cv2.findContours(red_mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
for pic, c in enumerate(cnts):
area = cv2.contourArea(c)
if (700 > area > 350):
x,y,w,h = cv2.boundingRect(c)
cv2.rectangle(frame, (x, y),(x + w, y + h),(0, 0, 255), 2)
cv2.putText(frame, "Red detected", (x, y), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (0, 0, 255))
cv2.imshow("Video from camera", frame)
if cv2.waitKey(10) & 0xFF == ord('q'):
break
在 с++ 中,它看起来像这样:
findContours(Mask(cv::Rect(x,y,width,height)), contours, hierarchy, RETR_TREE, CHAIN_APPROX_SIMPLE,
Point(0,0) );
我如何改变这条线来完成我的任务:
cnts, _ = cv2.findContours(red_mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE),
这是我要查找计数的区域:frame[a:a + height, b:b + 300] 提前谢谢您!
解决方案
推荐阅读
- python - PyTorch:使用 1-D 张量和多通道 (3-D) 图像张量执行 add/sub/mul 操作
- unity3d - 使用 MRTK 和 Hololens 重置相机变换
- javascript - 如何使用javascript将地图推送到新数组
- azure - Azure 用户只能分配给组
- html - 拉伸一个 div 并在下方显示另一个 div 以使用整个父 div 区域,但如果顶部 div 太大,则使顶部 div 可滚动
- json - 如何在 swift 上将 JSON 解码的数组传递给另一个 VC
- docker - docker 日志记录到 syslog 的严重级别
- pandas - 按列值在 DataFrame 中搜索关键字
- python - 类 __annotations__ 中的条目顺序是否与其定义一致?
- typescript - 在 Vue 3 项目中使用 vue-class-component 有什么好处吗?