#!/usr/bin/env python3 import os import sys import cv2 from pyzbar import pyzbar def main(image_folder_path, output_file_name): img_files = [f for f in os.listdir(image_folder_path) if f.endswith(('.jpg'))] qr_codes_found = [] for img_file in img_files: img_path = os.path.join(image_folder_path,img_file) img = cv2.imread(img_path) barcodes = pyzbar.decode(img) for barcode in barcodes: if barcode.type == 'QRCODE': qr_data = barcode.data.decode("utf-8") qr_codes_found.append((img_file, qr_data)) with open(output_file_name,'w') as f: for file_name,qr_content in qr_codes_found: f.write(f"{file_name}: {qr_content}\n") if __name__ == "__main__": image_folder_path = '/home/lk' output_file_name = 'qr_codes_found.txt' main(image_folder_path,output_file_name) 可以运行没有报错,创建的文本没有内容
时间: 2024-04-19 22:28:35 浏览: 54
你好!对于你的代码,我注意到你正在尝试解析一组图片文件中的 QR 码,并将其写入一个文本文件。根据你的描述,代码没有报错,但是生成的文本文件没有内容。有几个可能的原因会导致这种情况发生。
首先,请确保指定的图像文件夹路径 `image_folder_path` 包含正确的图片文件,并且这些图片中包含 QR 码。你可以通过打印 `img_files` 列表来检查它是否包含预期的文件。
其次,请确保你已经正确安装了相关的依赖库 `pyzbar` 和 `cv2`。如果没有正确安装,代码将无法解码 QR 码。
此外,你可以检查一下 QR 码的解码过程是否正常。你可以尝试在循环中打印 `qr_data`,看看它是否能够正确地解码 QR 码内容。
最后,请确保你具有对目标文件夹和输出文件的写入权限。你可以尝试更改输出文件名或更改输出文件所在的目录,以确保你具有适当的权限。
如果你仍然无法解决问题,请提供更多的详细信息,以便我能够更好地帮助你解决这个问题。
相关问题
#!/usr/bin/env python3 import os import sys import cv2 from pyzbar import pyzbar def main(image_folder_path, output_file_name): img_files = [f for f in os.listdir(image_folder_path) if f.endswith(('.png'))] qr_codes_found = [] for img_file in img_files: img_path = os.path.join(image_folder_path,img_file) img = cv2.imread(img_path) barcodes = pyzbar.decode(img) for barcode in barcodes: if barcode.type == 'QRCODE': qr_data = barcode.data.decode("utf-8") qr_codes_found.append((img_file, qr_data)) with open(output_file_name,'w') as f: for file_name,qr_content in qr_codes_found: f.write(f"{file_name}: {qr_content}\n") if __name__ == "__main__": image_folder_path = '/home/' output_file_name = 'qr_codes_found.txt' main(image_folder_path,output_file_name)
这段代码看起来有点问题,但我会尝试帮你解决。首先,确保你已经安装了以下依赖库:`cv2` 和 `pyzbar`。
接下来,你需要注意以下几点:
1. 请确保 `image_folder_path` 变量的值是指向包含要处理图像的文件夹的正确路径。
2. 请确保你有读取图像文件和写入结果文件的权限。
3. 请确保 `output_file_name` 变量的值包含一个合法的文件名。
如果你仍然遇到错误,请提供完整的错误信息以便更好地帮助你解决问题。
#!/usr/bin/env python2.7 import os import sys import cv2 from pyzbar import pyzbar def main(image_folder_path, output_file_name): img_files = [f for f in os.listdir(image_folder_path) if f.endswith(('.png')) qr_codes_found = [] for img_file in img_files: img_path = os.path.join(image_folder_path,img_file) img = cv2.imread(img_path) barcodes = pyzbar.decode(img) for barcode in barcodes: if barcode.type == 'QRCODE': qr_data = barcode.data.decode("utf-8") qr_codes_found.append((img_file, qr_data)) with open(output_file_name,'w') as f: for file_name,qr_content in qr_codes_found: f.write(f"{file_name}: {qr_content}\n") if __name__ == "__main__": image_folder_path = '/home/spurs/qr_test/' output_file_name = 'qr_codes_found.txt' main(image_folder_path,output_file_name)
这段代码是一个完整的脚本,用于在给定的图像文件夹中查找并解码 QR 码,并将解码结果保存到一个文件中。
脚本首先导入了需要的库和模块,包括 `os`、`sys`、`cv2` 和 `pyzbar`。
然后定义了 `main` 函数,这个函数是用来查找和解码 QR 码的核心部分,具体的功能和之前解释的一样。
最后,在 `__name__ == "__main__"` 的条件下,脚本设置了图像文件夹路径和输出文件名,并调用了 `main` 函数来执行查找和解码操作。
如果你运行这个脚本,它将会在指定的图像文件夹中查找并解码 QR 码,并将解码结果保存到一个名为 `qr_codes_found.txt` 的文件中。
阅读全文