OpenCV常用基本处理函数(2)图像基本操作
可以根据像素的行和列的坐标获取他的像素值。对 BGR 图像而言,返回值为 B,G,R
例如获取蓝色的像素值:
img=cv2.imread('messi5.jpg')
px=img[100,100]
blue=img[100,100,0]
获取图像属性
图像的属性包括:行,列,通道,图像数据类型,像素数目等img.shape 可以获取图像的形状。他的返回值是一个包含行数,列数,通道数的元组。
1 import cv2 2 import numpy as np 3 img=cv2.imread('messi5.jpg') 4 print(img.shape) 5 ##(342, 548, 3)
图像的roi感兴趣区域
下面的代码是首先把球在图中的区域作为感兴趣的区域从图片中分离出来,然后再复制图片的另一区域,效果如图所示;
1 import cv2 2 import numpy as np 3 img=cv2.imread('messi5.jpg') 4 ball=img[280:340,330:390] 5 img[273:333,100:160]=ball 6 img=cv2.imshow('test', img) 7 cv2.waitKey(0)
拆分图像的三个通道
通过对图片的属性的第三个值来分离;
import cv2 import numpy as np img=cv2.imread('/home/duan/workspace/opencv/images/roi.jpg') b=img[:,:,0]
图像的扩充填边
cv2.copyMakeBorder()函数。这经常在卷积运算或 0 填充时被用到,参数等使用的时候再理解
图像加法
你可以使用函数 cv2.add() 将两幅图像进行加法运算,建议使用opencv的加法操作;
图像混合
这其实也是加法,但是不同的是两幅图像的权重不同
函数 cv2.addWeighted() 可以对图片进行混合操作
凤舞九天