python一维码识别,python二维码生成识别代码
今天又啥也没干我完蛋了哦就是没办法沉下心来,咋办。还是先来条自然语言处理吧。
七,凡事必有至少三个解决方法
对事情只有一个方法的人,必陷入困境,因为别无选择。
对事情有两个方法的人也陷入困境,因为他制造了左右两难,进退维谷的局面给自己。
有第三个方法的人,通常会找到第四,五个方法,甚至更多的方法。
有选择就是有能力,所以,有选择总比没有选择好。
至今不成功,只是说至今用过的方法都得不到想要的效果。
没有办法,只是说已知的办法都行不通。
世界上尚有很多我们过去没有想过,或者尚未认识的方法。
只有相信尚有未知的有效方法,才会有机会找到它和使事情改变。
不论什么事情,我们总有选择的权利,而且不只是一个。
"没有办法"使事情画上句号,"总有办法"使事情有突破的可能。
"没有办法"对你没有好处,应停止想它;"总有办法"对你有好处,故应把它留在脑中。
为何不使自己成为第一个找出办法的人?
额。纯粹就是今天没得写的了,只好丢点以前写的抠脚程序,也不能叫程序,只能实现功能吧。也是东抄点,西抄点,然后一拼来的。
用的树莓派3B然后插个通用串行总线摄像头就行了
文件名:colorList.py这是颜色库。
1 #-*-编码:UTF 8-*-
2进口数量作为np3导入集合四
5
6 defgetColorList():7 dict=集合。默认字典(列表)8
9 #黑色
10 lower_black=np.array([0,0,0])11 upper_black=np.array([180,255,46])12 color _ list _ black=[]13 color _ list _ black。追加(lower _ black)14 color _ list _ black。append(upper _ black)15 dict[ black ]=color _ list _ black 16
17 #灰色
18 lower_gray=np.array([0,0,46])19 upper_gray=np.array([180,43,220])20 color _ list _ gray=[]21 color _ list _ gray。追加(lower _ gray)22 color _ list _ gray。append(upper _ gray)23 dict[ gray ]=color _ list _ gray 24
25 #白色
26 lower_white=np.array([0,0,221])27 upper _ white=NP。array([180,30,255])28 color _ list _ white=[]29 color _ list _ white。追加(lower _ white)30 color _ list _ white。append(upper _ white)31 dict[ white ]=color _ list _ white 32
33 #红色
34 lower_red=np.array([156,43,46])35 upper_red=np.array([180,255,255])36 color _ list _ red=[]37 color _ list _ red。追加(lower _ red)38 color _ list _ red。append(upper _ red)39 dict[ red ]=color _ list _ red 40
41 #红色2
42
43 lower_red=np.array([0,43,46])44 upper_red=np.array([10,255,255])45 color _ list _ red 2=[]46 color _ list _ red 2。追加(lower _ red)47 color _ list _ red 2。append(upper _ red)48 dict[ red 2 ]=color _ list _ red 249
50 #橙色
51 lower_orange=np.array([11,43,46])52 upper _ orange=NP。array([25,255,255])53 color _ list _ orange=[]54 color _ list _ orange。追加(lower _ orange)55 color _ list _ orange。append(upper _ orange)56 dict[ orange ]=color _ list _ orange 57
58 #黄色
59 lower_yellow=np.array([26,43,46])60 upper _ yellow=NP。数组([34,255,255])61 color _ list _ yellow=[]62 color _ list _ yellow。追加(lower _ yellow)63 color _ list _ yellow。append(upper _ yellow)64 dict[ yellow ]=color _ list _ yellow 65
66 #绿色
67 lower_green=np.array([35,43,46])68 upper_green=np.array([77,255,255])69 color _ list _ green=[]70 color _ list _ green。追加(lower _ green)71 color _ list _ green。append(upper _ green)72 dict[ green ]=color _ list _ green 73
74 #青色
75 lower_cyan=np.array([78,43,46])76 upper_cyan=np.array([99,255,255])77 color _ list _ cyan=[]78 color _ list _ cyan。append(lower _ cyan)79 color _ list _青色。append(upper _ cyan)80 dict[ cyan ]=color _ list _ cyan 81
82 #蓝色
83 lower_blue=np.array([100,43,46])84 upper_blue=np.array([124,255,255])85 color _ list _ blue=[]86 color _ list _ blue。追加(lower _ blue)87 color _ list _ blue。append(upper _ blue)88 dict[ blue ]=color _ list _ blue 89
90 #紫色
91 lower_purple=np.array([125,43,46])92 upper _ purple=NP。array([155,255,255])93 color _ list _ purple=[]94 color _ list _ purple。追加(lower _ purple)95 color _ list _ purple。append(upper _ purple)96 dict[ purple ]=color _ list _ purple 97
98 returndict99
100
101 if _ _ name _ _== _ _ main _ _ :102 color _ dict=getColorList()103 print(color _ dict)104
105 num=len(color _ dict)106 print( num=,num)107
108 for d in color _ dict:109 print( key=,d)110 print(value=,color_dict[d][1])
然后是xf_color.py这就能识别颜色了(这是识别已有图片文件版的)原理就是用上面的色库算出图片颜色面积哪个最大就算是啥颜色。抠脚。
#-*-编码:UTF 8-*-
import cv2 importcolorlistdefget _ color(frame):print( go in get _ color )
hsv=cv2.cvtColor(帧,cv2 .COLOR_BGR2HSV)
maxsum=0
颜色=无
d颜色_字典的颜色列表。获取颜色列表():
mask=cv2.inRange(hsv,color_dict[d][0],color _ dict[d][1])# cv2。我在写(d).巴布亚新几内亚,掩码)
binary=cv2.threshold(掩码,127,255,cv2 .THRESH_BINARY)[1]
binary=cv2.dilate(binary,None,iterations=2)# cv2。我在写(d 1。png ,二进制)
cnts=cv2.findContours(二进制,cv2 .RETR _外部,cv2 .CHAIN_APPROX_SIMPLE)[-2]
对于增量,总和=:
sum=cv2。轮廓区域(c)# print( % s,%d %(d,sum))
if sum maxsum:
maxsum=sum
color=dreturncolorif _ _ name _ _= _ _ main _ _ :
文件名=。/images/test _黄色。png frame=cv2。即时消息阅读(文件名)打印(get_color(frame))
文件名:xf_realize.py这是用摄像头来识别颜色。就是加了个拍照功能哦对只返回红绿蓝三种颜色,因为搬的物料就是这三种颜色懒得改了。
#-*-编码:UTF 8-*-
导入cv 2 importxf _ colordefvideox():
vix=cv2 .视频捕获(0)whileTrue:
ret,tu=vix.read()
cv2.imshow(拍照_照片,涂)
cv2.waitKey(1)
cv2.imwrite(color.png ,tu)
filename=cv2.imread(color.png )
颜色=xf _ color。如果color== red ,则获取颜色(文件名)或color==red2 :打印(红色)
结果=1
破裂
elif color==green :打印(“绿色”)
结果=2
破裂
elif color==blue :打印(“蓝色”)
结果=3
breakvix.release()
cv2。destroyallwindows()返回结果,如果_ _ name _ _= _ _ main _ _ :
videox()
接下来是识别二维码的(有二维码图片文件)文件名:xf_scance.py
#-*-编码:UTF 8-*-
导入pyz条。pyz bar为从PIL导入图片的pyz bar,ImageEnhancedefscance():
image= photo。png img=image。open(image)# img=图像增强.亮度(img).增强(2.0) #增加亮度
# #img=ImageEnhance .锐度(img).增强(17.0) #锐利化
# img=图像增强。对比度(img).增强(4.0) #增加对比度
# img=img.convert(L) #灰度化
barcodes=pyzbar.decode(img)条形码中的条形码:
barcodeData=条形码。数据。decode( utf-8 )returnbarcodedata if _ _ name _ _= _ _ main _ _ :
扫描()
再来个摄像头扫二维码的:
#-*-编码:UTF 8-*-
importcv 2 import xf _ scancedefvideox():
vix=cv2 .视频捕获(0)whileTrue:
ret,tu=vix.read()
cv2.imshow(拍照_照片,涂)
cv2.waitKey(1)
cv2.imwrite(photo.png ,tu)
result=xf _ scance。scance()if result:# print(result)
breakvix.release()
cv2。destroyallwindows()返回结果,如果_ _ name _ _= _ _ main _ _ :
r=videox()print(r)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。