python 图形识别

python 图形识别,第1张

import cv2
import numpy as np
a=cv2.imread("tx.jfif ")
ll=cv2.cvtColor(a,cv2.COLOR_RGB2HSV )
#cv2.imshow('imshow',ll)
#cv2.waitKey(0)
def mh():
    bbl=np.array([0,175,20])
    bll3=np.array([10,255,255])
    bbl2=np.array([170,175,20])
    bbl4=np.array([180,255,255])
    mask1=cv2.inRange(ll  ,bbl,bll3)
    mask2=cv2.inRange(ll ,bbl2,bbl4)
    return mask1 +mask2
def gr():
    b=np.array([40,150,20])
    m=np.array([70,255,255])
    mask=cv2.inRange(ll ,b ,m )
    return mask
mask= mh() + gr()
t =cv2.bitwise_and(a,a,mask= mask )
l=t.copy()
def aa(t):
    mm,un =cv2.findContours(t ,cv2.RETR_EXTERNAL ,cv2.CHAIN_APPROX_TC89_KCOS )
    for nm in mm  :
        ko=cv2.contourArea(nm )
        if ko>500:
            cv2.drawContours(l,nm,-1,(255,0,0),3)
            v=cv2.arcLength(nm,True )
            nmk=cv2.approxPolyDP(nm,0.02*v,True )
            op=len(nmk )
            x,y,w,h=cv2.boundingRect(nmk )
            if op==3:Type="sjx"
            elif op==4:
                lo=w/float (h )
                if lo>0.95 and lo<1.05:Type ="999"
                else:Type ="zhenfangxing"
            elif op>4:Type ="ppp"
            else: Type ="nnn"
            cv2.rectangle(l,(x,y ),(w+x,y+h ),(0,255,0),3)
            cv2.putText(l,Type,
                       (x+(w//2)-10,y+(h//2)-10),cv2.FONT_HERSHEY_SIMPLEX ,
                       0.7,(0,255,0),3)
cvc=cv2.GaussianBlur(t,(7,7),0)
nnn=cv2.Canny(cvc,220,220)
aa(nnn )
cv2.imshow("999",l)
cv2.waitKey(0)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/716720.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存