我想刪除背景顏色以提高OCR對圖像的準確性。樣品看起來象下面這樣:刪除OCR圖像處理中的背景顏色
我把所有的信件後處理後的圖像中,而只是去除光紫色紋理背景。是否有可能使用Imagemagick等開源軟件將其轉換爲二進制圖像(黑/白)以實現此目標?如果背景有多種顏色會怎麼樣?解決方案是一樣的嗎?
此外,如果我還想刪除紫色字母(劇院名稱)和行以便只保留黑色字母呢?簡單的裁剪可能不起作用,因爲紫色字母也可能出現在其他地方。
我正在尋找一種解決方案,而不是像Photoshop那樣的工具。
我想刪除背景顏色以提高OCR對圖像的準確性。樣品看起來象下面這樣:刪除OCR圖像處理中的背景顏色
我把所有的信件後處理後的圖像中,而只是去除光紫色紋理背景。是否有可能使用Imagemagick等開源軟件將其轉換爲二進制圖像(黑/白)以實現此目標?如果背景有多種顏色會怎麼樣?解決方案是一樣的嗎?
此外,如果我還想刪除紫色字母(劇院名稱)和行以便只保留黑色字母呢?簡單的裁剪可能不起作用,因爲紫色字母也可能出現在其他地方。
我正在尋找一種解決方案,而不是像Photoshop那樣的工具。
您可以對圖像應用模糊處理,以便獲得幾乎清晰的背景。然後將原始圖像的每個像素的每個顏色分量除以背景上的像素的對應分量。你會得到白色背景上的文字。額外的後處理可以進一步幫助。
如果文字比背景顏色深(在每個顏色分量中),則此方法起作用。否則,您可以反轉顏色並應用此方法。
您可以使用GIMP(或任何其他圖像編輯工具)執行此操作。
圖像模糊:
差圖像:
二進制:
如果你正在做它作爲一個一次性的,GIMP是可能夠好了。如果你期望這麼做很多次,你可以寫一個imagemagick腳本或者使用類似Python和OpenCV的代碼來編寫你的方法。
一些問題,上述辦法:
如果你的圖像捕獲爲RGB,只需使用綠色的圖像或快速轉換Bayer模式是大概@misha's convert to greyscale solutions可能會。
希望這可以幫助別人
OpenCV中使用一行代碼,你可以使用的OpenCV和python
#Load image as Grayscale
im = cv2.imread('....../Downloads/Gd3oN.jpg',0)
#Use Adaptivethreshold with Gaussian
th = cv2.adaptiveThreshold(im,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,11,2)
這裏得到,結果如下
這裏的鏈接Image Thresholding
你爲什麼不上傳到一些圖像服務器的圖像,並讓我們看到了票? – 2011-04-01 00:21:53
,因爲該網站阻止我上傳圖片,直到聲望達到10。:-(我會盡快將其發佈到里程碑,或者我可以給你發一封郵件。 – charles 2011-04-01 00:55:57