【发布时间】:2022-01-07 00:11:53
【问题描述】:
我正在尝试解决一个问题,并且非常纠结于如何解决它。我有一张图片,我想获取感兴趣的圆形区域内的所有像素。
圆的半径为 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
但我不太确定,因为那不会只给你圆边缘的像素吗?
任何想法或提示将不胜感激。
【问题讨论】:
-
“获取像素”的目的是什么?目的决定了你的圈子的代表性。用图片表达你的意思。这是最简单的。
-
不要被问题的字面回答分心。对于您真正想做的事情,它们可能效率低下或无用。 xyproblem.info
-
不等式 (x-a)²+(y-b)²≤r² 告诉您内部和内部的像素。对于第 y 行,|x-a|≤√(r²-(y-b)²) 告诉您 x 的范围(前提是平方根的参数是非负的)。
-
目的是用直方图分析像素强度
标签: python image-processing geometry pixel roi