【发布时间】:2019-11-06 01:43:00
【问题描述】:
我想找出黑色背景中白色区域(图片1)的坐标以便对其进行裁剪。我想分别裁剪所有这些白色区域。因此,我正在接近这些形状的轮廓,但它不起作用。同时,我把它当作一个对象来处理,但它也没有。因此,我必须如何接近这些白色区域才能检测和裁剪?
import numpy as np
img = cv2.imread("image.png")
bw = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(bw,127,255,0)
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cntx1 = contours[0][0]
cntx = contours[0][1]
pt1 = (cntx1[0][0],cntx1[0][1])
pt2 = (cntx[0][0],cntx[0][1])
cv2.circle(img,pt1,5,(0,255,0),-1)
cv2.circle(img,pt2, 5, (0,255,0),-1)
cv2.imshow('f',img)
cv2.waitKey(0)
cv2.destroyAllWindows() ```
【问题讨论】:
-
您希望检测和裁剪多少个白色区域?我假设您正在尝试裁剪大区域,所以 7?为需要裁剪的区域添加预期的输出图像会有所帮助
-
它可以根据输入进行更改,但在一种情况下,它是 6 顺便说一句,我发现 400 个区域有代码,但它不起作用。我需要更高效的代码
标签: python opencv image-processing