Python+OpenCV=如何裁剪圆?

2024-09-27 09:29:00 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是代码:

self.img = cv2.imread(image,)
circle = cv2.HoughCircles(self.img, 3,
                          dp=1.5, minDist=1000, minRadius=100, maxRadius=1000)
red = (0,0,255)
x = circle[0][0][0]
y = circle[0][0][1]
r = circle[0][0][2]
cv2.circle(self.img, (x, y), r, red, 2)



    x - X
    y - Y
    r - Radius
    For example: 521.25, 506.25, 318.919

从代码中如何裁剪给定示例中的圆?


Tags: 代码imageselfimgforredcv2dp
2条回答

很简单。。你需要得到矩形右上角的x,y坐标,然后找到和高度。圆只能用正方形包围。

# given x,y are circle center and r is radius
rectX = (x - r) 
rectY = (y - r)
crop_img = self.img[y:(y+2*r), x:(x+2*r)]

后圆=cv2.houghcirles(img,…)

if len(circles) == 1:
    x, y, r = circles[0][0]
    print x, y, r
    mask = np.zeros((w0,h0),dtype=np.uint8)
    cv2.circle(mask,(x,y),r,(255,255,255),-1,8,0)
    #cv2.imwrite(argv[2],mask)
    out = img*mask
    white = 255-mask
    cv2.imwrite(argv[2],out+white)

相关问题 更多 >

    热门问题