1

我有一堆由黑白书页组成的 UIImages。我希望能够根据页面结束的位置(空白开始的位置)“裁剪”或“剪切”图像。为了说明我的意思,请看下面的图片。我想在“Sie”这个词之后以编程方式裁剪图像。

在此处输入图像描述

我不知道如何解决这个问题。然而,我已经考虑过它,也许检测黑色像素停止的位置,因为它总是黑白的,但不知道如何正确地做到这一点。谁能提供任何见解或告诉我如何做到这一点?

非常感谢!

4

2 回答 2

1

这是我使用 Python Imaging Library 编写的一些 Python 代码。它找到最低的黑色像素,然后将图像从 y 值向下裁剪五个像素。

import Image

img = Image.open("yourimage.fileformat")
width,_ = img.size
lowestblacky = 0
for i, px in enumerate(img.getdata()):
    if px[:3] == (0, 0, 0):
        y = i/width
        if y > lowestblacky:
            lowestblacky = y
img.crop((0,0,width,lowestblacky+5)).save("yourimagecropped.fileformat")

Python 在几乎所有操作系统上都可用,所以我希望你能够使用它。如果您想在最后一个黑色像素之后裁剪图像,只需从最后一行删除“+5”,或根据自己的喜好更改值。

于 2013-07-12T18:21:35.700 回答
0

将图像转换为像素值。从像素的底线开始,寻找黑色像素。如果找到一些,则该行是图像的结尾。如果没有黑色像素,则继续下一行像素。

实际上,“黑色”像素可能过于简化了。一个好的解决方案是使用灰度限制(每个图像都有一些噪点),甚至更好的是,改变像素对比度。您还可以在开始检测算法之前应用图像过滤器(例如边缘检测或锐化)。

于 2013-07-12T17:31:58.960 回答