我創建了一個 .sh 腳本,用於對使用 Shutter 製作的螢幕截圖進行簡單的 OCR 處理。該腳本如下所示 ( ocrFile.sh
):
#!/bin/bash
convert $1 /tmp/output.pnm
cat /tmp/output.pnm | pamstretch 4 > /tmp/stretched.pnm
convert /tmp/stretched.pnm -colorspace gray /tmp/output600dpi.tif
tesseract /tmp/output600dpi.tif ./outputText -l eng
該腳本執行一些使用超立方體進行 OCR 時所需的影像增強。如果從終端呼叫它,它會正確完成工作。我想要的是在 Nemo 中完成整個過程,因此我創建了一個名為OCR.nemo_action
inside 的自訂操作/home/user1/.local/share/nemo/actions
,其中包含以下內容:
[Nemo Action]
Name=OCR The Screenshoot
Comment=OCR Function for Nemo File Manager
Exec=<ocrFile.sh %F>
Icon-Name=gtk-execute
Selection=Any
Extensions=png;
此 Nemo 操作不會使用上面給出的腳本產生輸出。 .sh 腳本也位於 Nemo 自訂操作的資料夾中。
請幫忙!
答案1
偉大的!
-- ~/OCR.sh ( chmod +x ~/OCR.sh )
#!/bin/bash
convert $1 /tmp/OCR-output.pnm
cat /tmp/OCR-output.pnm | pamstretch 4 > /tmp/OCR-stretched.pnm
convert /tmp/OCR-stretched.pnm -colorspace gray /tmp/OCR-output600dpi.tif
tesseract /tmp/OCR-output600dpi.tif ~/Desktop/OCR-outputText -l eng
rm /tmp/OCR-output.pnm /tmp/OCR-stretched.pnm /tmp/OCR-output600dpi.tif
-- ~/.local/share/nemo/actions
[Nemo Action]
Active=true
Name=OCR picture
Comment=OCR Function for Nemo File Manager
Selection=S
Exec=/bin/bash /home/user/OCR.sh %F --- change "user"
Icon-Name=gtk-execute
Extensions=png;jpg;jpeg;bmp;
OCR 文字在我的桌面上!
答案2
我在 Cinnamon 中找到了解決這種情況的方法。該.nemo_action
文件由以下內容組成。
[Nemo Action]
Name=OCR The Screenshoot
Comment=OCR Function for Nemo File Manager
Selection=S
Exec=gnome-terminal --working-directory=%P -e "/media/storage/Scripts/actions/ocrFile.sh %F"
Icon-Name=gtk-execute
Extensions=png;jpg;jpeg;bmp;
Active=true
啟動終端機來完成這項工作是一種解決方法。其他一切似乎都沒有產生結果。
bash 腳本本身幾乎保持不變,僅針對一條指令進行了更改,以保持終端開啟直到執行命令集。
#!/bin/bash
convert $1 /tmp/output.pnm
cat /tmp/output.pnm | pamstretch 4 > /tmp/stretched.pnm
convert /tmp/stretched.pnm -colorspace gray /tmp/output600dpi.tif
tesseract /tmp/output600dpi.tif ./outputText -l eng
rm /tmp/output.pnm /tmp/stretched.pnm /tmp/output600dpi.tif
bash
我最終渴望的是讓這個過程完全沒有終端。在我看來,這個過程與 Gnome2 (Mate) 略有不同。這裡的 bash 腳本包括終端命令不要在「後台某處」執行。對於呼叫 GUI 應用程式的 bash 腳本,Gnome3 的Exec=
指令允許該<script.sh %F>
值。
答案3
它是一個 bash 腳本嗎?嘗試
Exec=/bin/bash /home/user1/.local/share/nemo/actionsocrFile.sh %F
(或甚至/bin/sh
通常dash
可能會稍微快一些。)
至於調試,在命令列:
$ nemo -q # quit all instances of nemo
$ NEMO_ACTION_VERBOSE=1 nemo
然後從開啟的 nemo 視窗執行該操作。