【问题标题】:Dividing a image into multiple images of equal pixel data [closed]将图像划分为具有相同像素数据的多个图像[关闭]
【发布时间】:2017-12-14 12:15:04
【问题描述】:

我有一张灰度图像im

如果total 是所有像素值的总和,我如何将im 拆分为具有以下属性的 5 张图像:

  • 所有像素值的总和是total的1/5
  • 缺少要求...
  • ...

我正在使用 python。但任何其他语言的建议也将不胜感激。

我使用以下代码计算像素数据。

from PIL import Image

im = Image.open('capture.jpg')
im_grey = im.convert('LA') # convert to grayscale
width,height = im.size

total=0
for i in range(0,width):
    for j in range(0,height):
        total += im_grey.getpixel((i,j))[0]

print "The sum of all pixels' values in im is :" 
print total
print "1/5 of that sum is :" 
print total/5

任何建议都值得赞赏。

【问题讨论】:

  • 像素值相等是什么意思?图像中是否有 201987 像素并且您想要分割成相等的区域,或者 201987 是所有像素的总和并且您想要有五个总和相等的图像?
  • @Piglet。我可以随时为您制作 2​​7x7481 的图像。我同意您可能会遇到按面积将其分成 5 等份的问题。但是,如果出于同样的原因你有整数像素,你也会有一个问题,把它分成几个部分,每个部分都有总值的五分之一,因此我最初的困惑。
  • @OP。 Piglet 澄清说,您需要每个部分的图像总强度的 1/5。您将无法获得准确的答案,因此您需要指定 A)您想要获得的接近程度,以及 B)您希望如何进行拆分。
  • 您将花费更多时间分割图像,而不是机器人处理图像。
  • “缺少需求...”有什么用?

标签: python image matlab python-2.7 image-processing


【解决方案1】:

您最初的问题是一个难题。但是,看看你制作的 cmets,我认为这是一个简单的问题。您可以从上到下扫描图像,并对像素求和。当总和达到 sum_all_pixels/5 时,您就找到了第一个区域。将总和重置为零,然后继续扫描第二个区域。我希望你明白我的意思。

【讨论】:

  • 看我得到你的东西并尝试了,我在选择那个区域时遇到了问题。任何可能的代码或解决方案。在 python 或其他语言中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多