如何访问图像上圆形 ROI 的内部和外部像素?
How to access the inner and outer pixels of a circle ROI on an image?
我正在尝试解决一个问题,但我对如何解决这个问题一头雾水。我有一张图片,我想获取感兴趣的圆圈区域内的所有像素。
圆的半径为150像素,ROI的圆心为[256, 256]。
我试图在图像上画圆圈,但找不到从中访问这些像素的方法。
img = imread('Model/m1.png') * 255
row = size(img, 0) #imgWidth
col = size(img, 1) #imgHeight
px = row * col
circle = Circle((256, 256), 150, fill = False)
fig, ax = subplots()
ax.add_patch(circle)
imshow(img, cmap='gray')
show()
我在想也许可以使用圆的方程:
(x - a)**2 + (y - b)**2 == r**2
但我不太确定,因为那不会只给你圆边的像素吗?
如有任何想法或提示,我们将不胜感激。
不等式(x - a)**2 + (y - b)**2 <= r**2
允许遍历圆圈内的所有像素。
在实践中,您可以扫描从 b-r
到 b+r
的 Y 坐标,然后遍历相应 X 范围的水平线 a - sqrt(r**2 - (y-b)**2) .. a + sqrt(r**2 - (y-b)**2)
我正在尝试解决一个问题,但我对如何解决这个问题一头雾水。我有一张图片,我想获取感兴趣的圆圈区域内的所有像素。
圆的半径为150像素,ROI的圆心为[256, 256]。
我试图在图像上画圆圈,但找不到从中访问这些像素的方法。
img = imread('Model/m1.png') * 255
row = size(img, 0) #imgWidth
col = size(img, 1) #imgHeight
px = row * col
circle = Circle((256, 256), 150, fill = False)
fig, ax = subplots()
ax.add_patch(circle)
imshow(img, cmap='gray')
show()
我在想也许可以使用圆的方程:
(x - a)**2 + (y - b)**2 == r**2
但我不太确定,因为那不会只给你圆边的像素吗?
如有任何想法或提示,我们将不胜感激。
不等式(x - a)**2 + (y - b)**2 <= r**2
允许遍历圆圈内的所有像素。
在实践中,您可以扫描从 b-r
到 b+r
的 Y 坐标,然后遍历相应 X 范围的水平线 a - sqrt(r**2 - (y-b)**2) .. a + sqrt(r**2 - (y-b)**2)