这篇教程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、获取摄像头的视频流 def video_get(): capture = cv.VideoCapture(0) # 保存视频流的每一帧 while True: ret, frame = capture.read() # 翻转图像,原图像是左右颠倒的 frame = cv.flip(frame, 1) cv.imshow("video", frame) c = cv.waitKey(50) if c == 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类型的,因此可以使用切片操作来获取图像的某一部分: 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图像处理内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net! Python Python抓取今日头条街拍图片数据 |