基于python和opencv的图像处理
近期因为公司有个微信答题活动,答题完成后,需要将结果得分发到公司群里进行统计。每一张截图都需要按照截图中的姓名进行更名并完成统计,完成后将图片保存到公司服务器。所以我想试着做一个小程序可以对截图进行图像识别并提取图像中姓名,然后将其自动保存到一个EXCEL表。完成结果统计的同时,再由程序修改图片名称,并保存到公司服务器上。所以最近计划学习一点图像识别来完成这个小目标,如有更简单的实现方法,可以评论区告诉我一声,谢谢。(我之前看网上有tesseract-ocr可以完成,但是安装环境始终配置不对,有没有这个配置好的,可以联系我,万分感谢!)
1.图像的基本表示方法
1.二值图像:指含有黑色和白色的图像。在计算机中,图像的处理是通过矩阵来实现的。计算机在处理该图像时,先将其划分为若干个小方块,每一个小方块就是一个独立的处理单位,可以称之为像素点。然后,计算机会将白色的像素点处理为"1",将黑色的像素点处理为"0",由于图像只使用两个数字就可以表示,因此,计算机使用一个比特位表示二值图像。
2.灰度图像:计算机会将灰度处理为256个灰度级,用数值区间[0,255]来表示。其中,数值"255"表示纯白色,数值"0"表示纯黑色,其余的数值表示从纯白到纯黑之间不同级别的灰度。用于表示256个灰度级的数值0 255,正好可以用8位二进制来表示。有时也会使用8位二进制来表示二值图像。其中,"0"表示黑色,"255"表示白色。
3.彩色图像:与二值图像和灰度图像相比,彩色图像明显可以表示出更多的图像信息。有研究发现,人类的视网膜能够感受到红色、绿色和蓝色三种不同的颜色,即三基色。在自然界中,各种常见的不同颜色的光都可以通过三基色按照一定的比例混合而成。从人的视觉角度来看,可以将颜色解析为色调、饱和度和亮度等,在RGB色彩空间中,存在R(red,红色)通道、G(green,绿色)通道和B(blue,蓝色)通道。每个色彩通道值的范围都在[0,255]之间,计算机使用这三个色彩通道的组合表示颜色。对于计算机来说,每个通道的信息就是一个一维数组,所以,通常使用一个三维数组来表示一幅RGB色彩空间的彩色图像。在RGB色彩空间中,存在R(red,红色)通道、G(green,绿色)通道和B(blue,蓝色)通道。每个色彩通道值的范围都在[0,255]之间,计算机使用这三个色彩通道的组合表示颜色。对于计算机来说,每个通道的信息就是一个一维数组,所以,通常使用一个三维数组来表示一幅RGB色彩空间的彩色图像。
2.图像处理的基本操作
图像处理可以看作计算机对像素的处理。在面向Python的OpenCV中,可以通过位置索引的方式对图像内的像素进行访问和处理。
cv2库安装:pip install opencv-python
1.读取图像:
语法:cv2.imread(filename[,flags]) filename:包含路径的完整文件名称,flags读取标记,用来控制读取文件的类型,一般为默认
实例:
执行结果:
PS:就我个人理解,计算机处理图片时,是把图片划分成像素单位进行处理,这个像素在二值化、灰度图像、彩色图像中表现不同。例如上图,是彩色图片,它由很多个像素组成,每一个像素在计算机中又由RGB三原色来表示,经过CV2读取后,就会得到RGB三原色的数组。说一下像素点,平时我们手机所说的5000W,6000W,1亿像素说的是图片中像素的组成密度,一张图片拍出来后由多少像素点组成。像素越多,图片越细腻。
2.显示图像
语法:cv2.namedWindow(window) 括号中为窗口名。这句话的意思是新打开一个用于展示图片的窗口
实例:
执行结果:
语法:cv2.imshow(window,image) #window窗口名字,image要显示的图像,也就是把图像显示在新打开的窗口中。这种语法跟tkinter中的容器控件差不多。
语法:cv2.waitKey([delay])#delay表示等待键盘触发的时间,单位是ms。当该值为负数或0时表示无限等待,默认值为0。
语法:cv2.destroyALLWindows()#释放所有打开的窗口
ps:如果之前没有释放掉内存的操作的话destroyallWIndows会释放掉被那个变量占用的内存。
实例:
执行结果:
PS:关于destroyAllWindows的用法,不加上这一句图片也会正常打开,但是你按键盘,图片不会关闭,当你将这句加上时,按键盘打开的窗口会全部关闭。
3.保存图像
语法:cv2.imwrite(filename,img[,params])#filename是要保存的图像的完整路径名,包括文件的扩展名。 img是要保存的图像的名字。 params是保存的类型参数,可选。
实例:
执行结果:
3.图像通道的基本操作
photoshop里面有对RGB三色通道的处理方法,可选择单一通道进行操作,cv2中同样有这种功能,可以使用split()和merge()函数进行拆分和合并通道操作。
1.split()拆分函数
语法:b,g,r=cv2.split(img)# b、g、r分别是B通道、G通道、R通道的图像信息。 img是要拆分的图像。
实例:
执行结果:
Ps:这种图像处理方式在photoshop中也是存在的。
2.merge()合并函数
语法:b,g,r=cv2.merge([b,g,r])# b、g、r分别是B通道、G通道、R通道的图像信息。
实例:
执行结果:
Ps:三色通道合并后还是原图
6G通信理论速率是5G的一百倍,真正实现全球将会进入奇点时代在科幻小说三体中罗辑有介绍过黑暗森林法则,尽管所说的都是一套逻辑,但科技爆炸却是真的,据谷歌总监预估2025年新一轮的科技爆炸就会来临,那时全球现代技术将会进入到一个新的层次。相信
为什么感觉宇航员王亚平的皮肤变得越来越好了?电视剧的神话故事终于在现实应验了所谓天上一日,地上一年。所以在天上生活当然让人更年轻啦!但这终究不过是一句玩笑话,在天上生活其实无论是航天员的身体,还是皮肤都有很大的风险。比如之前
数千英国人在手部植入支付芯片据阿根廷布宜诺斯艾利斯经济新闻网4月21日报道,未来就是现在。一家致力于安全地将芯片植入人们手中的公司表示。这样一来,人们就可以在不使用现金银行卡或智能手机的情况下支付服务的费用。
德银Visa(V。US)与万事达(MA。US)将受益于实时支付业务扩张智通财经APP获悉,德意志银行金融科技分析师BrianKeane表示,实时支付(RTP)系统正在迅速演变为新的支付用例和收入机会。在这一新兴技术的核心领域,Visa(V。US)和万
宁德时代2021年报宁王告诉你,不造车比造车更赚钱图片来源视觉中国文XEV研究所,作者王博,编辑斯言原来不造车真的比造车更赚钱。4月21日,宁德时代公布2021年报,数据显示2021全年宁德时代营业收入1303。55亿元,归属于上
甲子光年Web3。0概念下的场景生态简析,完整版33页本文报告来源于甲子光年智库编写的Web3。0概念下的场景生态简析,完整版共有33页,非常详尽,值得收藏。本报告下载领取方式详见文末本报告目录大纲如下Web3。0概念的前世今生Web
张庭如何建立300亿传销帝国这样的图像在互联网上流传一艘大型游轮的第二层天花板上有林瑞阳小陶虹和张庭等明星。其中。林瑞阳穿着白手套,船长单身平行军礼。截至2017年5月,TST公司公司声称拥有1200万会员和
用机器学习揭示全球中大地震破裂模式科技日报合肥4月24日电(记者吴长锋)24日,记者从中国科学技术大学了解到,该校李泽峰研究员利用机器学习方法,总结了全球3000多个5。5级以上地震的震源时间函数特征,全景式地展示
五一出行哪种蓝牙耳机最好用?蓝牙耳机良心推荐因为蓝牙耳机能给大家带来便利,所以渐渐的市面上的蓝牙耳机品牌也就多了起来。每个品牌的蓝牙耳机的功能可能有所不同,因此怎样挑选蓝牙耳机也就成为了一个难题。因为挑选蓝牙耳机需要考虑很多
包邮区,没有快递慢下来的次日达本刊记者王宇发于2022。4。25总第1041期中国新闻周刊猫粮已经见底。靠小区团购解决了人饿肚子的问题后,猫粮成了上海市民周安当前最大的焦虑。在京东下单时,订单显示
金融科技反诈进行时!哪类诈骗最高发?看完你就懂了假网贷诈骗杀猪盘以房养老注销校园贷这些诈骗手法你都听过吗?近期,各类电信诈骗高发,也引起金融科技公司的警惕。4月25日,北京商报记者多方采访了解到,包括蚂蚁集团美团度小满360数科