opencv-python图像处理怎么安装
opencv-python图像处理怎么安装
这篇文章主要讲解了“opencv-python图像处理怎么安装”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“opencv-python图像处理怎么安装”吧!
一、安装opencv
关于opencv的安装,如果是windows系统下使用pycharm,那么直接在在终端使用pip命令或者点击设置-python解释器输入opencv-python即可
如果使用的是conda,那也可以使用pip命令或者conda install 安装
在linux下的话更加简单。而且也会少很多无缘无故的bug,推荐使用linux系统。linux下使用终端输入pip或者pip3 install opencv-python即可,前提是已经安装了python并且设置好了路径变量。
二、 opencv使用
想要使用opencv,必须在代码开头导入opencv的包,这里和安装时候的名字不一样,使用命令:
import cv2
导入包。并且需要安装matplotlib和numpy。
1、 图片的读取
img=cv2.imread("car_green.jpg")
括号内是图片文件的名字,如果代码与图片在同一目录下可以这样做,但是如果不在同一目录下,就需要包含图片文件的完整路径。使用该语句读取图片,将会返回一个ndarray类型的矩阵(行数,列数,通道数)
显示刚才读取的图片:
注意:opencv读取到的图片格式为BGR格式。
cv2.imshow("name",img)#等待时间,毫秒级,0表示任意键终止cv2.waitKey(0)
2、获取摄像头的视频流
defvideo_get():capture=cv.VideoCapture(0)#保存视频流的每一帧whileTrue:ret,frame=capture.read()#翻转图像,原图像是左右颠倒的frame=cv.flip(frame,1)cv.imshow("video",frame)c=cv.waitKey(50)ifc==27:break
3、保存获取到的图像
cv.imwrite(想要保存的文件路径,图像文件)
4、灰度图转化
读取时直接读取为灰度图:
img=cv2.imread(path,cv.IMREAD_GRAYSCALE)
读取时是彩色,转化为灰度图
img=cv.imread("car_red.jpg")img=cv.cvtColor(img,cv.COLOR_BGR2GRAY)cv.imshow("ing",img)cv.waitKey(0)cv.destroyAllWindows()
5、获取图像的部分区域
由于读取到的图片是ndarray类型的,因此可以使用切片操作来获取图像的某一部分:
roi=img[起始:结束,起始:结束]
6、将彩色图片的通道拆分与合并
因为彩色图片是三通道的,假设图片尺寸为128x128,那么他就包含三个128*128的颜色矩阵
img=cv.imread("car_red.jpg")cv.imshow("img",img)#注意格式为BGRb,g,r=cv.split(img)#通道合并,注意矩阵的顺序,这样合成的图片为BGR格式img=cv.merge((b,g,r))cv.imshow("img1",img)cv.waitKey(0)cv.destroyAllWindows()
三通道提取出来之后,每个通道其实如果显示的话,就是单独的灰度图,因为图片的通道数变为1了。
想要显示为RGB某一颜色,可以使用切片将其他颜色通道变为0
7、边界填充
将图片进行边界填充操作:
cv.copyMakeBorder(img,50,50,50,50,borderType=cv.BORDER_REFLECT)
其参数为,图片源, 上下左右的填充距离(50,50,50,50), borderType参数表示填充方法。
BORDER_REPLICATE: 复制法,复制图片最边缘像素
BORDER_REFLECT:反射法,对感兴趣的图像像素在两边进行复制
BRDER_REFLECT_101:反射法,以最边缘像素为轴
BORDER_WRAP:外包装法
BORDER_CONSTANT:常量法,常数值填充
记得在函数前定义一个变量接受该函数的返回值。
8、图像尺寸更改
使用resize函数对图片尺寸进行修改
red=cv.imread("car_red.jpg")#括号内的元组表示的是图片的长和宽,也就是其对于矩阵的列和行red=cv.resize(red,(475,245))
图片的尺寸我们使用长和宽来表示,矩阵的大小使用的是行和列,对应的图片的长就对应与矩阵的列,因此要注意输入的尺寸到底是图片尺寸还是矩阵尺寸,对于方阵来说没有区别,但是对于其他矩阵来说影响很大。
还有一种方法就是不指定其大小,通过指定x、y轴的扩展倍数来完成图像更改。
red=cv.resize(red,(0,0),fx=3,fy=4)
9、图像融合
想要矩阵能相加,那么其必须是等尺寸的,在上面将两图处理为相同大小的图片之后,就能对其进行图像融合处理操作了。
green=cv.imread("car_green.jpg")print(green.shape)red=cv.imread("car_red.jpg")red=cv.resize(red,(475,245))print(red.shape)res=cv.addWeighted(red,0.4,green,0.6,0)cv.imshow("res",res)cv.waitKey(0)cv.destroyAllWindows()
图像融合其本质就是矩阵相加,上面的函数可以看作一个公式:
F = ared + bgreen + c
其中a = 0.4 b = 0.6, c = 0这些系数都是我们可以自己进行设置的
处理后的图片如下:
感谢各位的阅读,以上就是“opencv-python图像处理怎么安装”的内容了,经过本文的学习后,相信大家对opencv-python图像处理怎么安装这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
推荐阅读
-
python多行注释符号怎么表示
python多行注释符号怎么表示这篇文章主要介绍“python多行...
-
python支持的操作系统是什么
python支持的操作系统是什么这篇文章主要介绍“python支持...
-
python如何判断列表为空
python如何判断列表为空这篇文章主要介绍“python如何判断...
-
Python如何利用D3Blocks绘制可动态交互的图表
-
2021年度编程语言揭晓
-
PPython:PHP 拥抱 Python 的利器
-
哪种Python IDE最适合你?这里有一份优缺点列表
-
Python分隔字符串函数用法split
aaa,bbb=str.split(‘&&’,2)第一个参数为分隔符第二个参数是要完成的最大拆分数...
-
php安全编程——python测试实例编写
-
神奇的Python模块:pdfkit,将Python抓取的网址内容保存pdf文件