检查文件夹中的所有图片文件使用文字识别获取其中的文字信息检查其中是否还有涉密内容。要求:由程序自动生成检查报告内容包括共有多少图片各个类型的图片分别有多少共检测到多少含有涉密信息的图片列出他们的目录地址及文件名称。
可行方案:
- 使用Python编程语言,结合第三方库如OpenCV、Tesseract-OCR等实现对图片的读取和文字识别功能。
- 遍历指定文件夹中的所有图片文件,对每个文件进行文字识别并检查其中是否存在涉密信息。
- 将检查结果存储在一个列表中,包括文件名、目录地址和是否含有涉密信息等信息。
- 统计各个类型的图片数量和含有涉密信息的图片数量,最终生成检查报告。
以下是Python实现代码示例:
import os
import cv2
import pytesseract
# 设置Tesseract-OCR的安装路径
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
# 定义敏感词列表
sensitive_words = ['机密', '保密', '秘密']
# 定义检查结果列表
result = []
# 遍历指定文件夹中的所有图片文件
for root, dirs, files in os.walk('path/to/folder'):
for file in files:
# 判断文件是否为图片文件
if file.endswith('.jpg') or file.endswith('.png') or file.endswith('.bmp'):
# 读取图片文件
img = cv2.imread(os.path.join(root, file))
# 将图片转为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 对灰度图像进行二值化处理
_, binary = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)
# 对二值化图像进行文字识别
text = pytesseract.image_to_string(binary, lang='chi_sim')
# 判断识别结果中是否存在敏感词
if any(word in text for word in sensitive_words):
# 将检查结果添加到列表中
result.append({'directory': root, 'filename': file, 'is_sensitive': True})
else:
result.append({'directory': root, 'filename': file, 'is_sensitive': False})
# 统计各个类型的图片数量和含有涉密信息的图片数量
total_count = len(result)
jpg_count = sum(1 for r in result if r['filename'].endswith('.jpg'))
png_count = sum(1 for r in result if r['filename'].endswith('.png'))
bmp_count = sum(1 for r in result if r['filename'].endswith('.bmp'))
sensitive_count = sum(1 for r in result if r['is_sensitive'])
# 生成检查报告
report = f'Total: {total_count}\nJPG: {jpg_count}\nPNG: {png_count}\nBMP: {bmp_count}\nSensitive: {sensitive_count}\n\nSensitive images:\n'
for r in result:
if r['is_sensitive']:
report += f'{r["directory"]}/{r["filename"]}\n'
print(report)
运行以上代码,即可对指定文件夹中的所有图片进行文字识别和涉密信息检查,并生成检查报告
原文地址: https://www.cveoy.top/t/topic/heTL 著作权归作者所有。请勿转载和采集!