-1
我想通過對閾值進行閾值處理來預處理給定的圖片,然後將其交給Tesseract。我第一次使用Gimp(2.8.16)和130 - 255的固定範圍。然後,當我使用Java在OpenCV(3.1)中實現它時,我首先忘記調用cvtColor,導致其中仍然有一些顏色的圖片(這些地區在Gimp是白色的)。除此之外,圖片如預期。但是,當我實施相應的呼叫時,我得到的照片與我所期望的不同。看起來以前有顏色的區域現在變成黑色,而剩下的圖片與我用Gimp創建的區域相似。OpenCV閾值與預期不同
有什麼我缺少創建一個更類似的輸出?
我問這個問題的原因是,不幸的是,正方體(與PSM 6)創造了兩個圖像完全不同的結果:
- 用於在GIMP創建的一個:「2011 1升0006」
- 用於與OpenCV的創建的第二個: 「2011ÔÇö] L 0 0006 1」
這裏是我使用的代碼:
Mat thres = new Mat();
Mat tmp = new Mat();
Imgproc.cvtColor(src, tmp, Imgproc.COLOR_BGR2GRAY); // tmp = src.clone(); in my first attempt
Imgproc.threshold(tmp, thres, 130, 255, Imgproc.THRESH_BINARY);
Imgcodecs.imwrite("output.jpg", thres);
下面是圖片:
鑑於圖片:用瘸子創建
圖片:
第一個結果使用的OpenCV:
01使用的OpenCV第二結果:
非常感謝您的回答! 我想創建它基於彩色圖像。但是,我不希望產生的圖像中的彩色部分,而只是黑色部分(如看起來大部分是黑色的字體)。爲了解決這個問題,我還需要做些什麼? – Max
您可以遍歷圖像並檢查三個通道中的像素值,如果在所有三個通道中爲0或255,則保持相同的值,否則將替換爲0,這會將這些顏色值變爲黑色。 –