python统计图片中黑白像素个数_使用Python Imaging Library将图像中的黑色像素...

因此,我假设您只是想将两个图像彼此相乘,发现它们的大小不同?如果我误解了,请原谅我,但是这里有一些代码将一个图像的黑色像素放在另一个图像上,即使黑白图像比另一个图像小.

原始图像(painting.bmp和mask.bmp)

输出:

“ …实际上是第一幅图像(绘画)的新图像,只有第二幅图像中的黑色像素被覆盖在其顶部.” – 这是你想要的吗?

本质上,通过将较小的图像放在与第一个图像相同大小的空白图像的中心,该代码仅使较小的图像与第一个图像一样大.

import PIL

from PIL import Image

from PIL import ImageChops # used for multiplying images

# open images

painting = Image.open("painting.bmp")

mask = Image.open("mask.bmp")

def black_onto(img1, img2):

# create blank white canvas to put img2 onto

resized = Image.new("RGB", img1.size, "white")

# define where to paste mask onto canvas

img1_w, img1_h = img1.size

img2_w, img2_h = img2.size

box = (img1_w/2-img2_w/2, img1_h/2-img2_h/2, img1_w/2-img2_w/2+img2_w, img1_h/2-img2_h/2+img2_h)

# multiply new mask onto image

resized.paste(img2, box)

return ImageChops.multiply(img1, resized)

out = black_onto(painting, mask)

out.show() # this gives the output image shown above

的解释:(img1_w / 2-img2_w / 2,img1_h / 2-img2_h / 2,img1_w / 2-img2_w / 2 img2_w,img1_h / 2-img2_h / 2 img2_h)

好的,这有点丑陋,但实际上非常简单:框定义了画布上要放置蒙版的区域,即中心. box是一个4值元组,用于定义区域左上角和右下角的x和y,如下所示:(x1,y1,x2,y2).不是x,y和宽度,高度,这会更方便.无论如何,要定义区域以使图像居中,就是我们得到的代码.

它是这样的:左上角的x值等于大图像的宽度的一半减去蒙版图像的宽度的一半. (我发现笔和纸在这里很有用.)左上角的y值也是如此.那是前两个值.

现在,如果元组接受了(x,y,宽度,高度),则后两个值将只是蒙版图像的尺寸.但是他们不是,他们有更多的x和y职位.因此,我们必须手动计算它们,方法是使用与前两个值相同的代码(左上角的位置),并向其中添加图像的宽度和高度,这是我们从某些变量(img2_w和img2_h)中知道的.因此,元组的后两个值与第一个和第二个相同,但是增加了遮罩(img2)的宽度或高度.

好吧,我希望这很有意义,并且祝您项目顺利!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值