当前位置:   article > 正文

Opencv入门_小白读图

小白读图

OpenCV采用的格式为H×W×C,即高度×宽度×通道数,通道顺序为BGR,这与Python的Pillow库(RGB)不同。

读图、展示和保存新图

读图、展示和保存主要会用到三个函数,分别为cv2.imread()、cv2.imshow()和cv2. imwrite()。

  • cv2.imread()

img = cv2.imread(‘img_name’[,mode])
第二个参数,表示读取图片返回的形式,有三种选择:cv2.IMREAD_COLOR、cv2.IMREAD_GRAYSCALE和cv2.IMREAD_UNCHANGED,其中IMREAD_UNCHANGED表示不变。另外也可以使用数字来表达读图模式,比如1,0或−1分别表示COLOR、GRAYSCALE和UNCHANGED。

  • cv2.imshow()

cv2.imshow([‘name’],img,)
name表示窗口名字。

  • cv2. imwrite()

cv2. imwrite(’img_name’,img)

基本线条操作

OpenCV提供了基本的线条操作,即画直线、画矩形、画圆、画椭圆、画文字

  • lcv2.line()
  • cv2.circle()
  • cv2.rectangle()
  • cv2.ellipse()
  • cv2. putText()

基本几何操作

OpenCV提供了基本的几何操作,如平移、旋转、缩放、翻转、裁剪、位操作

平移 cv2.warpAffine

cv2.warpAffine(image,M,(image.shape[1],image.shape[0]))
->参数M为np.float32([[1,0,x],[0,1,y]]),表示向[1,0]方向移动x像素,向[0,1]方向移动y像素。

旋转 cv2.getRotationMatrix2D cv2.warpAffine

cv2.getRotationMatrix2D(center,angle,b)获得选择矩阵M。
参数说明:
1、center为旋转时固定的点
2、angle为旋转角度
3、b为图片缩放尺度,1表示保持原图大小

然后使用cv2.warpAffine(image,M,(image.shape[1],image.shape[0]))进行仿射变换,完成旋转。

缩放 cv2.resize

cv2.resize(image,b,a)
缩放操作主要为变换图片大小可使用cv2.resize()函数,该函数可使用的参数有三个:第一个参数为图像对象,第二个参数为缩放尺寸,第三个参数为插值选项,常用的插值选项有:

对于OpenCV而言,官方建议缩小使用cv2.INTER_AREA,放大使用cv2.INTER_LINEAR。cv2.INTER_CUBIC相对较慢,如果不特别指出,cv2.resize会默认使用cv2. INTER_LINEAR插值方式。

翻转 cv2.flip

翻转分为水平翻转和垂直翻转,API为cv2.flip(image,number),第二个参数1表示水平翻转,0表示垂直翻转,−1表示水平加垂直翻转

裁剪 切片

裁剪使用NumPy中的切片操作即可,即cropped_image=image[x1:x2,y1:y2]。

位操作 cv2.bitwise_and cv2.bitwise_or cv2.bitwise_xor cv2.bitwise_not

位操作是在灰度图像素级别的布尔运算,可对两张图片分别做交集、并集、异或操作。
cv2.bitwise_and(img1,img2,mask = mask) 与操作
cv2.bitwise_or(img1,img2,mask = mask)) 或操作
cv2.bitwise_xor(img1,img2,mask = mask)) 异或操作
cv2.bitwise_not (img1,img2,mask = mask)) 非操作

Masking操作

mask(起遮罩效果)可以让我们只关注图像的某一区域,可以称作为感兴趣区域(RoI,Regoin of Interest)。bitwise_and只关注mask中被打开的区域(此处是值为255的区域).

色彩方面操作

色彩通道分离与融合 cv2.spilt cv2.merge

分离主要使用split方法,融合则用merge方法。
(B,G,R) = cv2.spilt(image)
image = cv2.merge([B,G,R])

颜色空间转换 cv2.cvtColor

Opencv不仅有RGB颜色空间,还有HSV、L×a×b等颜色空间。HSV空间表达比RGB表达更加接近人类对色彩的感知,而L×a×b比HSV更胜一筹。
颜色空间转换主要使用cv2.cvtColor函数,第一个参数为需要进行转换的图像对象,第二个为颜色空间转换形式。常用的有cv2.COLOR_BGR2GRAY、cv2.COLOR_ BGR2HSV

颜色直方图 cv2.calcHist

OpenCV使用cv2.calcHist方法来计算直方图,参数有images、channels、mask、histSize和ranges。其中,images为图像列表,如[image];channels为通道索引,比如灰度图为[0],彩色图用[0,1,2];mask参数如果提供,则只计算mask大于0的区域,不使用则传None即可;histSize针对所统计通道设置区间数,如彩色三通道[8,8,8];ranges为像素点值域,对于RGB,为[0,256],其他空间请参考对应值域。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/554556
推荐阅读
相关标签
  

闽ICP备14008679号