hiroi-sora / Umi-OCR

OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。
MIT License
25.59k stars 2.59k forks source link

是否可添加禁文字,自動刪除圖片。 #276

Closed pangjiu88 closed 6 months ago

pangjiu88 commented 9 months ago

禁止的廣告文字關鍵詞,手動輸入到txt文檔(換行的形式)。 1、如果某一張圖片識別的內容結果包含禁止的關鍵詞,刪除本地文件。 or 2、批量識別所有文本內容,包含禁止的關鍵詞,獲取是哪些圖片,刪除本地文件。 期待您的回復,謝謝。

hiroi-sora commented 9 months ago

这个功能可以编写powershell等脚本实现。

  1. Umi-OCR批量识图时,保存文件类型勾选 csv表格文件
  2. 用powershell读入该文件,判断每一个条目中是否含有违禁词,如果有,则删除指定路径的文件。

脚本 del_img.ps1 示例如下:

param( # -csvFilePath ".\111.csv" -searchText "禁词"
    [string]$csvFilePath,
    [string]$searchText
)

# 导入CSV文件
$data = Import-Csv -Path $csvFilePath

foreach ($row in $data) {
    # 检查OCR列中是否包含指定的文本
    if ($row."OCR" -match $searchText) {
        $imagePath = $row."Image Path"

        # 检查文件是否存在
        if (Test-Path -Path $imagePath) {
            # 尝试删除文件,捕获任何错误
            try {
                # Remove-Item -Path $imagePath -Force
                Write-Host "Deleted file: $imagePath"
            }
            catch {
                Write-Error "Failed to delete file: $imagePath. Error: $_"
            }
        }
        else {
            Write-Warning "File not found: $imagePath"
        }
    }
}

调用示例:在命令行中输入

./del_img.ps1 -csvFilePath ".\111.csv" -searchText "禁词"

注意要点:

  1. 如果输入csv路径正确,但报错CSV file not found,建议将csv的名称改短一点,如111.csv。并尝试输入完整路径(只含英文字母)。
  2. 如果该脚本无法匹配指定违禁词文本,可能是编码原因。请将csv文件修改为utf-8编码。然后在控制台中用chcp 65001改为utf-8代码页。
  3. 你想根据txt文档,读入多个违禁词,可以在上述脚本的基础上修改实现。

如果你对代码不熟悉,可问gpt。