def identity_OCR_Video(pic_path): vid = cv2.VideoCapture(pic_path) while True: try: return_value, frame = vid.read() if return_value: cv2.imshow("result", frame) frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) image = Image.fromarray(frame) result = cv2.cvtColor(image, cv2.COLOR_RGB2BGR) code = pytesseract.image_to_string(frame,lang='chi_sim') print("识别该身份证号码是:" + str(code)) cv2.waitKey(100) else: raise ValueError("No image!") except: print() if __name__ == '__main__': pic_path="E:/sdxxky/train_data/0014.jpg" identity_OCR(pic_path) identity_OCR_Video(0) identity_OCR_Chine(pic_path) time2 = time.time() print(u'总共耗时:' + str(time2 - time1) + 's') 总耗时为什么没有输出
时间: 2024-02-14 22:32:46 浏览: 225
根据您提供的代码,可能是因为在计算总耗时的语句没有正确输出。您可以尝试将最后的输出语句改为:
```
print('总共耗时: %.2f s' % (time2 - time1))
```
这样可以确保输出结果是正确的。此外,您的代码中同时调用了 `identity_OCR`、`identity_OCR_Video` 和 `identity_OCR_Chine` 函数,但是 `identity_OCR_Chine` 函数没有在代码中实现,可能会导致错误。建议您检查一下代码中是否存在错误或遗漏的部分。
相关问题
if save_vid: if vid_path != save_path: # new video print("save=", save_path) vid_path = save_path if isinstance(vid_writer, cv2.VideoWriter): vid_writer.release() # release previous video writer if vid_cap: # video fps = vid_cap.get(cv2.CAP_PROP_FPS) w = int(vid_cap.get(cv2.CAP_PROP_FRAME_WIDTH)) h = int(vid_cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) else: # stream fps, w, h = 30, im0.shape[1], im0.shape[0] save_path += '.mp4' vid_writer = cv2.VideoWriter(save_path, cv2.VideoWriter_fourcc(*'mp4v'), fps, (w, h)) vid_writer.write(im0)
这段代码是用来保存视频的。它会检查是否需要保存视频,并检查保存路径是否有更改。如果路径改变了,则释放之前的视频写入器,创建一个新的写入器来写入新的视频。如果视频是从文件中读取的,则会从视频中获取帧率、宽度和高度。如果视频是从流中获取的,则会设置默认的帧率为30,宽度和高度为输入图像的宽度和高度。最后,它使用cv2.VideoWriter将帧写入视频。
代码解释 # Save results (image with detections) if save_img: if dataset.mode == 'image': cv2.imwrite(save_path, im0) print(f" The image with the result is saved in: {save_path}") else: # 'video' or 'stream' if vid_path != save_path: # new video vid_path = save_path if isinstance(vid_writer, cv2.VideoWriter): vid_writer.release() # release previous video writer if vid_cap: # video fps = vid_cap.get(cv2.CAP_PROP_FPS) w = int(vid_cap.get(cv2.CAP_PROP_FRAME_WIDTH)) h = int(vid_cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) else: # stream fps, w, h = 30, im0.shape[1], im0.shape[0] save_path += '.mp4' vid_writer = cv2.VideoWriter(save_path, cv2.VideoWriter_fourcc(*'mp4v'), fps, (w, h)) vid_writer.write(im0)
这段代码是用来保存带有检测结果的图像或视频的。如果`save_img`为真,那么就会保存一张带有检测结果的图像。如果数据集模式是'image',那么就会将这个图像保存到指定的路径`save_path`中。如果数据集模式是'video'或者'stream',那么就会将这个带有检测结果的图像写入到视频文件中。如果`vid_path`与`save_path`不同,说明需要保存一个新的视频文件,就需要释放之前的视频写入器`vid_writer`。如果当前正在处理的是视频,就会获取视频的帧率、宽度和高度;如果是实时流,就会默认使用30帧每秒、当前图像的宽度和高度,并将文件类型设置为.mp4。最后,将带有检测结果的图像写入到视频文件`vid_writer`中。
阅读全文