Opencv的一些基本函数

  1. (image为图片转换得到的矩阵,cv2_show()是自定义的函数,作用是将矩阵转换为图像并展示出来)
  2. 引入Opencv库时不是import opencv,而是用import cv2
  3. cv2.imread():将图像转换为矩阵
  4. image.shape:展示图片的彩色图像三维(高,宽,三原色)或灰度图像(长,宽)
  5. cv2.imshow():将矩阵转为图像(plt.imshow()同功能)
  6. cv2.namedWindow(“image”, WINDOW_NORMAL):图像分辨率过高导致cv2.imshow()图像显示不全时,需在前面加上cv2.namedWindow(“image”, WINDOW_NORMAL)。
  7. cv2.imwrite(name,image):保存图片,那么:保存图片的名字,image:图像矩阵
  8. b,g,r = cv2.split(image):获取三原色的亮度值
  9. 图片部分区域截取,先将图片转换成数组,然后数组切片,如cat=image[0:200,0:200]
  10. cv2.merge(b,g,r):将三原色亮度组合起来

只保留三原色其中一种,就将其他原色置零。如

image[:,:,0]=0
image[:,:,1]=0
cv2_show('123', image)
  1. 边界填充
    1. 定义填充大小:如top_size,bottom_size,left_size,right_size = (50,50,50,50)
    2. 选择填充方式,用函数:image2=cv2.copyMakeBorder(image,top_size,bottom_size,left_size,right_size,borderType)borderType表示填充方法,有如下几种方法:
      1. BORDER_REPLICATE: 复制法,也就是复制最边缘像素。
      2. BORDER_REFLECT: 反射法,对感兴趣的图像中的像素在两边进行复制,例如: fedcba abcdefgh hgfedcb。
      3. BORDER_REFLECT_101: 反射法,也就是以最边缘像素为轴,进行对称填充,例如:gfedcbabcdefghgfedcba。
      4. BORDER_WRAP:外包装法,填充方式例如:cdefgh abcdefgh abcdefg。
      5. BORDER_CONSTANT: 常量法,常数值填充。

  2. 数值计算:
    1. 直接相加:
      • 要求维度一样
      • 可能会溢出:当亮度值超过255时,会自动对亮度进行256取余操作,如294的亮度,294%256=38,所以294的亮度将会变为38的亮度。
    2. 用cv2.add():
      • 要求维度一样
      • 不会溢出,当亮度超过255时将取最大值255。
  3. 图像融合:
    1. 要求维度一样:如image1[414,500,3]和image2[429,499,3]无法融合,此时要用cv2.resize(image,wode,high)进行维度变换,如image2’=cv2.resize(image2,(500,414))***注意图像维度的顺序跟cv2.resize()的顺序不一样。
    2. 融合时可以直接相加,也可用cv2.addWeighted(image1,α,imge2,β,b)进行权重融合,计算公式是:
      1. imageadd=image1*α+image2*β+b(α、β为图像权重,b作用为对亮度进行微调)

你可能感兴趣的:(opencv,计算机视觉,图像处理)