【发布时间】:2019-09-30 08:01:45
【问题描述】:
您好,我正在尝试处理一组图像(比如 5 张)。我希望将每个图像视为一个图层,该图层分为 3x3 网格,其中每个网格区域代表一个像素。我想从每一层(图像)中获取最大像素值,并从每一层生成具有最大像素值的最终图像。现在我刚刚尝试在单个图像上绘制网格,但我认为这不是正确的方法。有关如何获得所需解决方案的任何建议。
plt.figure(figsize=(20,20))
y_start= im1.height
y_end= 0
x= 100
for x in range(0,im1.width,50):
line= ((x,y_start),(x,y_end))
draw =ImageDraw.Draw(im1)
draw.line(line,fill=('white'))
plt.imshow(im1)
plt.figure(figsize=(20,20))
x_start= 0
x_end= im1.height
for y in range(0,im1.height,50):
line= ((x_start,y),(x_end,y))
draw =ImageDraw.Draw(im1)
draw.line(line,fill=('white'))
plt.imshow(im1)
pix_val = list(im1.getdata())
【问题讨论】:
-
不确定我是否理解。让我们取任何像素,比如中心像素,在每一层上,我们在中心像素周围的 3x3 窗口中找到最大像素,所以现在我们有 5 个像素放置在中心位置 - 我们如何做到这一点?
-
@MarkSetchell 每层对应于每一个单独的图像。因此,考虑到中心像素,我们将有 5 个值对应于中心位置,但我们应该考虑最终矩阵中这 5 个中心点的最大值。我希望这能澄清一点。
-
你想用 Python 写这个,还是只是想完成工作并继续前进?我问是因为您可以在 shell 单行中使用 ImageMagick 来完成,而无需编写任何代码。
-
@MarkSetchell 我的偏好是 python,但我会很感激帮助,以便我可以在 python 中实现它
-
我的回答解决了您的问题吗?如果是这样,请考虑接受它作为您的答案 - 通过单击计票旁边的空心对勾/复选标记。如果没有,请说出什么不起作用,以便我或其他人可以进一步为您提供帮助。谢谢。 meta.stackexchange.com/questions/5234/…
标签: python opencv image-processing computer-vision pixel