计算机视觉opencv之读取图片灰度图区域选取视频播放提取颜色通道移除通道
计算机视觉的实现我们需要下载两个第三方库win键r键cmd打开命令行pip install 库名 -i 镜像地址前面的文章中有第三方库 的下载感兴趣的可以参考https://blog.csdn.net/2201_75573294/article/details/155455973?fromshareblogdetailsharetypeblogdetailsharerId155455973sharereferPCsharesource2201_75573294sharefromfrom_linkpip list命令可以查询当前所下载的库计算机视觉就是把图像转化为像素矩阵每一个颜色都是由红色、绿色、蓝色组成的称为RGB但是opencv的读取格式不是RGB而是反着的BGR1.读取图片import cv2#导入 acv2.imread(rD:\project\cat2s.jpg)#不要包含中文这里是图片的路径 cv2.imshow(cutecat,a)#不要取中文名不会报错但会出现乱码这里名字是窗口名 bcv2.waitKey(0) #是在一个给定的时间内ms出发如果用户没有按下键到时自动结束设置0代表一直显示 print(b) cv2.destroyAllWindows() print(图像形状shape,a.shape) print(图像数据类型dtype,a.dtype) print(图像尺寸size,a.size) print(a)#a是矩阵后面关闭窗口可以点右上角叉但是一般我们关闭窗口是单击一下窗口选中按任意键就能关闭程序就会继续2.小插曲这里一开始我使用的就是pycharm软件编写的代码如果编写代码的时候出现代码处被黄色选定一般都自动跳出来的不需要一个一个打上去但是出现黄色背景就需要自己手动打上去这个是因为python版本的问题可以解决。首先打开命令行输入where python找到你当前使用的python版本的地址复制出最后exe的文件名也就是我选中的这些路径在文件管理器中打开在文件管理器中打开复制的路径Lib----site-packages----cv2的cv2.pyd文件复制该文件再回到site-packages目录下粘贴该文件就OK了。3.灰度图也就是把图片变黑白import cv2 bcv2.imread(rD:\project\cat2s.jpg,cv2.IMREAD_GRAYSCALE) #bcv2.imread(rD:\project\cat2s.jpg,0)#这句效果和上一句是一样的 cv2.imshow(graycat,b) acv2.waitKey(0) cv2.destroyAllWindows() print(图像形状shape,b.shape) print(图像数据类型dtype,b.dtype) print(图像尺寸size,b.size) 图片保存 # cv2.imwrite(graycat,b)#可以保存下来被灰度的图片4.ROI区域选取import cv2 acv2.imread(rD:\project\cat2s.jpg) ba[100:500,100:400]#xy两个方向范围相交获取一块区域100~500100~400 cv2.imshow(yuantu,a) cv2.imshow(qiepian,b) cv2.waitKey(0) cv2.destroyAllWindows()5.视频播放import cv2 video_capture cv2.VideoCapture(D:\project\认真的雪.mp4)#打开视频文件video_capture可以对中文识别所以可以有中文 #video_capture cv2.VideoCapture(0)#参数为0的时候就是打开摄像头 if not video_capture.isOpened():#检查视频是否成功打开 print(无法打开视频文件) exit() while True:#循环读取视频帧 ret,frame video_capture.read()#逐帧读取视频 if not ret:#检查是否成功读取ret为false就执行这句 break #framecv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)#灰度BGR to gray cv2.imshow(Video,frame)#显示当前帧每帧显示60ms修改60也就达到改变视频的播放速度的效果 #为0会卡在该界面按任意键显示下一帧值更小的的话会变快达不到理想效果因为是有上限的 if cv2.waitKey(60)27:#检查用户是否按下esc键如果是则退出循环这里27是ascii码值指定键退出 break #资源释放就等于关闭文件一样的存在 video_capture.release() cv2.destroyAllWindows()6.提取RGB颜色通道import cv2 acv2.imread(rD:\project\cat2s.jpg)#1.读取图片 #2.提取颜色通道 #第一种提取方法 a1a[:,:,0]#b通道蓝色通道 a2a[:,:,1]#g通道绿色通道 a3a[:,:,2]#r通道红色通道 #第二种提取方法 b,g,rcv2.split(a) #b包含蓝色通道g包含绿色通道r包含红色通道 cv2.imshow(b,b) cv2.imshow(g,g) cv2.imshow(r,r) #4.设置窗口显示时间 cv2.waitKey(0) #5.关闭所有窗口 cv2.destroyAllWindows() cv2.destroyAllWindows()虽然差别不是直接显露出来的但也能发现三张图是不一样的7.移除某通道后的彩色图像注意这里显示某通道的图像但是所显示的都是灰色的 那是因为只显示蓝色通道时实际上是将蓝色作为亮度值是单个通道这会导致图像呈现灰色 想要展示包含蓝色通道的彩色图像可以将图像的其他通道设为0即移除其他通道色import cv2 acv2.imread(rD:\project\cat2s.jpg) a_newa.copy()#复制原始图像以避免更改原始图像 #移除哪个通道就为0 #a_new[:,:,0]0#b蓝色通道 #a_new[:,:,1]0#g绿色通道 #a_new[:,:,2]0#r红色通道 cv2.imshow(p1,a_new) cv2.waitKey(0) cv2.destroyAllWindows()上面各个通道可自行操作移除红色和绿色移除蓝色8.把分割出的各通道图片合并import cv2 acv2.imread(rD:\project\cat2s.jpg) b,g,rcv2.split(a) cv2.imshow(b,b) cv2.imshow(g,g) cv2.imshow(r,r) imgcv2.merge((b,g,r))#合并 cv2.imshow(p2,img) cv2.waitKey(0) cv2.destroyAllWindows()
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2418472.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!