zoukankan      html  css  js  c++  java
  • AI 质检学习报告——实践篇——第三步:python利用OpenCV打开摄像头截图后实现图片识字

    AI 质检学习报告——实践篇——第一步:python利用OpenCV打开摄像头并截图

    AI 质检学习报告——实践篇——第二步:实现图片识字

    前边两篇实践已经分别实现了利用OpenCV打开摄像头并截图和图片识字,第三步比较简单(至少在我做完之前是这样想的),就是把前两步结合起来:python利用OpenCV打开摄像头截图后实现图片识字。

    代码分析

    from aip import AipOcr
    import cv2 as cv
    
    APP_ID='xxxxxxxx'
    API_Key='xxxxxxxxxxxxxxxxxxxxxxxx'
    Secret_Key='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
    
    client=AipOcr(APP_ID,API_Key,Secret_Key)
    
    def opencv_image():
        capture = cv.VideoCapture(0)
    
        width, height = capture.get(3), capture.get(4)
    
        capture.set(cv.CAP_PROP_FRAME_WIDTH, width * 1.5)
        capture.set(cv.CAP_PROP_FRAME_HEIGHT, height * 1.5)
    
        index=0
    
        while True:
            ret, frame = capture.read(0)
            frame = cv.flip(frame, 1)
            cv.imshow("video", frame)
            if cv.waitKey(1)== ord('s'):
                cv.imwrite("./image/"+str(index)+".jpg", frame)
    
                i=open(r"F:/大学/寒暑假活动/大一上寒假/科大暑假实践项目/AI质检/image/"+str(index)+".jpg","rb")
                img=i.read()
                message = client.basicGeneral(img)
                for i in message.get('words_result'):
                    print(i.get('words'))
    
                index+=1
    
            if cv.waitKey(1)== 27:
                cv.destroyAllWindows()
                break
    
    if __name__=="__main__":
        opencv_image()
    

    出现了一个让人很无语的问题:在这里插入图片描述

    笔记本摄像头是镜像照,这就不好识别了。

    (岂止是不好识别,完全是不能识别)
    在这里插入图片描述

    不过也有解决方案:

    size = img.shape
    iLR = copy.deepcopy(img)
    h = size[0]
    w = size[1]
    for i in range(h):
        for j in range(w):
            iLR[i,w-1-j]=img[i,j]
    

    这段代码实现了将图片镜像处理,这样两次镜像之后就又变回来了。

    但是,不能处理以二进制形式打开的图片,卡壳了。。。。。

  • 相关阅读:
    Python文件的两种用途
    模块的搜索路径
    循环导入问题
    import和from...import
    模块的四种形式
    函数小结
    面向过程编程
    内置函数
    匿名函数
    递归
  • 原文地址:https://www.cnblogs.com/AlexKing007/p/12339329.html
Copyright © 2011-2022 走看看