我有一堆由黑白書頁組成的UIImages。我希望能夠根據頁面結束位置(白色空間開始的位置)「裁剪」或「剪切」圖像。爲了說明我的意思,請看下面的圖片。我希望在單詞「Sie」之後以編程方式裁剪圖像。檢測圖像的結尾
我不知道如何去這個問題。然而,我已經給了它一些想法,也許檢測黑色像素在哪裏停止,因爲它總是黑色和白色,但不知道如何正確做到這一點。任何人都可以提供任何見解或告訴我如何做到這一點?
非常感謝!
我有一堆由黑白書頁組成的UIImages。我希望能夠根據頁面結束位置(白色空間開始的位置)「裁剪」或「剪切」圖像。爲了說明我的意思,請看下面的圖片。我希望在單詞「Sie」之後以編程方式裁剪圖像。檢測圖像的結尾
我不知道如何去這個問題。然而,我已經給了它一些想法,也許檢測黑色像素在哪裏停止,因爲它總是黑色和白色,但不知道如何正確做到這一點。任何人都可以提供任何見解或告訴我如何做到這一點?
非常感謝!
下面是我使用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」,或者根據自己的喜好更改該值。
將圖像轉換爲像素值。從像素的底部開始,尋找黑色像素。如果找到一些,則該線是圖像的結尾。如果沒有黑色像素,則繼續下一行像素。
實際上,「黑色」像素可能太簡化了。一個好的解決方案會使用灰度極限(每個圖像都有一些噪點),甚至更好,像素對比度發生變化。您也可以在開始檢測算法之前應用圖像過濾器(例如邊緣檢測或銳化)。
downvoters請評論 – Sulthan
圖片似乎並沒有出現在我的最後。可能只是我的網絡,但我想提起它。 +1,好奇自己。 – Phas1c