1. import cv2

图片加载、显示和保存

  1. # 读取图片,第二个参数为False时,显示为灰度图像,默认True为原图
  2. img = cv2.imread(filename="cat.jpg", flags=False)
  3. # 显示图片,第一个参数为图片的标题
  4. cv2.imshow(winname="image title", mat=img)
  5. # 等待图片的关闭,不写这句图片会一闪而过
  6. cv2.waitKey()
  7. # 保存图片
  8. cv2.imwrite("Grey_img.jpg", img)
  • imread()返回的是numpy.array

    图像缩放

    1. cv2.resize(src,dsize,dst=None,fx=None,fy=None,interpolation=None)
    1. b = cv2.resize(a,(200,200)) #将图像缩放为200*200
    2. b = cv2.resize(a, None, fx=0.5, fy=0.7) #将图像a在x轴方向×0.5,y方向*0.7

    interpolation - 插值方法
    interpolation取值:INTER_NEAREST - 最近邻插值法
    interpolation取值:INTER_LINEAR - 双线性插值法(默认)
    interpolation取值:INTER_AREA - 基于局部像素的重采样(resampling using pixel area relation)。对于图像抽取(image decimation)来说,这可能是一个更好的方法。但如果是放大图像时,它和最近邻法的效果类似。
    interpolation取值:INTER_CUBIC - 基于4x4像素邻域的3次插值法
    interpolation取值:INTER_LANCZOS4 - 基于8x8像素邻域的Lanczos插值

    伪色彩 cv2.applyColorMap()

    1. cv2.applyColorMap(src, userColor[, dst])
  • 在图像处理中,伪色彩用途广泛。在OpenCV库中,常见的伪色彩模式都可通过 cv2.applyColorMap(src, userColor[, dst]) 直接调用,很是方便快捷。

  • 例如伪色彩中的 COLORMAP_JET模式,就常被用于生成我们所常见的 热力图 ```python COLORMAP_AUTUMN = 0, COLORMAP_BONE = 1, COLORMAP_JET = 2, COLORMAP_WINTER = 3, COLORMAP_RAINBOW = 4, COLORMAP_OCEAN = 5, COLORMAP_SUMMER = 6, COLORMAP_SPRING = 7, COLORMAP_COOL = 8, COLORMAP_HSV = 9, COLORMAP_PINK = 10, COLORMAP_HOT = 11

heatmap = cv2.applyColorMap(heatmap, cv2.COLORMAP_JET)

  1. <a name="XDG5e"></a>
  2. #### 图像叠加/混合加权
  3. 详细参考:[https://blog.csdn.net/zh_jessica/article/details/77992578](https://blog.csdn.net/zh_jessica/article/details/77992578)
  4. ```python
  5. dst=cv2.addWeigthted(src1,a,src2,b,c)

可以将上式理解为“结果图像=图像1×系数1+图像2×系数2+亮度调节量”。
注意:src1和src2尺寸相同,文件类型必须相同,a,b,c之间没有必然关系,不存在a+b+c要等与1,c一定要写,可以写0,即不调节亮度。

图像常用属性

  • img.shape:打印图片的高、宽和通道数(当图片为灰度图像时,颜色通道数为1,不显示)
  • img.size:打印图片的像素数目
  • img.dtype:打印图片的格式

    1. img = cv2.imread("cat.jpg")
    2. imgGrey = cv2.imread("cat.jpg", False)
    3. print(img.shape)
    4. print(imgGrey.shape)
    5. #输出:
    6. #(280, 300, 3)
    7. #(280, 300)
    8. print(img.size)
    9. print(img.dtype)
    10. #输出:
    11. # 252000
    12. # uint8

    色彩空间转换

    cv2.cvtColor

  • 原型:cvtColor(src,code,dst=None,dstCn=None)

  • 作用:将一幅图像从一个色彩空间转换到另一个色彩空间
  • 参数:code,转换的色彩空间
    • 常用参数:cv2.COLOR_BGR2GRAY cv2.COLOR_GRAY2BGR cv2.COLOR_BGR2RGB
      1. # 色彩空间转换
      2. def color_space_demo(img):
      3. gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
      4. cv2.imshow("gray", gray)
      5. hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
      6. cv2.imshow("hsv", hsv)
      7. yuv = cv2.cvtColor(img, cv2.COLOR_BGR2YUV)
      8. cv2.imshow("yuv", yuv)
      9. ycrcb = cv2.cvtColor(img, cv2.COLOR_BGR2YCrCb)
      10. cv2.imshow("ycrcb", ycrcb)