2013-07-12 115 views
1

我有一堆由黑白書頁組成的UIImages。我希望能夠根據頁面結束位置(白色空間開始的位置)「裁剪」或「剪切」圖像。爲了說明我的意思,請看下面的圖片。我希望在單詞「Sie」之後以編程方式裁剪圖像。檢測圖像的結尾

enter image description here

我不知道如何去這個問題。然而,我已經給了它一些想法,也許檢測黑色像素在哪裏停止,因爲它總是黑色和白色,但不知道如何正確做到這一點。任何人都可以提供任何見解或告訴我如何做到這一點?

非常感謝!

+0

圖片似乎並沒有出現在我的最後。可能只是我的網絡,但我想提起它。 +1,好奇自己。 – Phas1c

回答

1

下面是我使用Python Imaging Library編寫的一些python代碼。它找到最低的黑色像素,然後將該圖像從該y值下降5個像素。

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」,或者根據自己的喜好更改該值。

0

將圖像轉換爲像素值。從像素的底部開始,尋找黑色像素。如果找到一些,則該線是圖像的結尾。如果沒有黑色像素,則繼續下一行像素。

實際上,「黑色」像素可能太簡化了。一個好的解決方案會使用灰度極限(每個圖像都有一些噪點),甚至更好,像素對比度發生變化。您也可以在開始檢測算法之前應用圖像過濾器(例如邊緣檢測或銳化)。

+0

downvoters請評論 – Sulthan