我已經掃描了這樣的影像,其中背景顏色不一定一致。當我使用這樣的 ImageMagick 命令時,它會應用一個固定的閾值,這對于沒有一致背景的影像是不利的。
convert in.jpg -threshold 35% -type bilevel -monochrome -compress LZW out.pdf
任何人都可以提供一種強大的方法來生成相應的單色影像來維護所有文本嗎?
我認為最好的方法可能應該基于深度學習。但是 DL 可能會占用太多資源來運行。如果非 DL 方法能夠呈現相當好的結果,那么它也是受歡迎的。

uj5u.com熱心網友回復:
您可以使用 Imagemagick 中的 -lat 函式來改進它,如下所示:
輸入:

convert coahuila.jpg -colorspace gray -negate -lat 50x50 10% -negate result.jpg

注意:我建議保存為 PNG 或 TIFF 以避免額外的 JPG 壓縮。我只保存為JPG,因為這個論壇有大小限制。
uj5u.com熱心網友回復:
您可以通過自適應閾值獲得良好的結果(例如大小為 43,偏移量為 28,但此設定并不重要)。

uj5u.com熱心網友回復:
這是使用除法歸一化和閾值處理的另一種 Imagemagick 6 方法。然后是一些形態來連接文本行。然后進行連通分量處理,找到最大的黑色連通區域。從中我們提取邊界框并使用它的尺寸來裁剪歸一化影像和閾值影像,并用白色填充到原始影像的大小。
輸入:

dims=$(convert coahuila.jpg -format "%wx%h" info:)
bbox=$(convert coahuila.jpg \
-colorspace gray \
\( clone -blur 0x20 \) \
swap \
-compose divide -composite \
-threshold 70% \
-type bilevel \
write coahuila_div.png \
-morphology open rectangle:1x55 \
-morphology close rectangle:3x1 \
-define connected-components:verbose=true \
-define connected-components:mean-color=true \
-define connected-components:keep-top=1 \
-connected-components 8 coahuila_ccl.png | \
grep "gray(0)" | awk '{print $2}')
convert coahuila_lat.png \
-crop $bbox repage \
-background white -gravity center -extent $dims \
coahuila_processed.png
除法歸一化和閾值影像:

形態連接影像:

最后結果:

請注意,如果使用 Imagemagick 7,請將 convert 更改為 magick,您也可以將 -threshold 70% 替換為 -auto-threshold otsu。
添加
此版本填充邊界框以避免裁剪太靠近文本。
dims=$(convert coahuila.jpg -format "%wx%h" info:)
bbox=$(convert coahuila.jpg \
-colorspace gray \
\( clone -blur 0x20 \) \
swap \
-compose divide -composite \
-threshold 70% \
-type bilevel \
write coahuila_div.png \
-morphology open rectangle:1x55 \
-morphology close rectangle:3x1 \
-define connected-components:verbose=true \
-define connected-components:mean-color=true \
-define connected-components:keep-top=1 \
-connected-components 8 coahuila_ccl.png | \
grep "gray(0)" | awk '{print $2}' | tr "x" " " )
pad=10
ww=$(echo $bbox | cut -d -f1)
hh=$(echo $bbox | cut -d -f2)
xo=$(echo $bbox | cut -d -f3)
yo=$(echo $bbox | cut -d -f4)
ww=$((2*pad ww))
hh=$((2*pad hh))
xo=$((xo-pad))
yo=$((yo-pad))
convert coahuila_div.png \
-crop ${ww}x${hh} ${xo} ${yo} repage \
-background white -gravity center -extent $dims \
coahuila_processed.png
結果:

根據需要調整打擊墊。
我沒有聲稱這是一個通用的解決方案。如果文本較大或行間距較大等,則需要進行一些調整。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/522434.html
上一篇:為什么這個影像平均只生成垂直線?
下一篇:如何對PyTorch預測進行聚類
