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)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)