opencv python 常用图像处理函数

  • 读取图像
    imread(图像路径[, 读取图像的参数])

    img = cv2.imread("/Users/zhaozhengwei/Desktop/photo/lbj.png")
    
  • 显示图像
    imshow(“窗口名”, 读取到的图像)

    cv2.imshow("demo", img)
    
  • 显示等待
    waitKey([,等待参数])

    cv2.waitKey(0) #无限等待
    
  • 保存图像
    imwrite(要保存的路径,要保存的图像)

    cv2.imwrite("/Users/zhaozhengwei/Desktop/photo/lbj.png",img)
    
  • 关闭窗口
    destroyWindow(“窗口名”) # 关闭指定窗口
    destroyAllWindows() # 关闭所有窗口

    cv2.destroyAllWindows()
    
  • 像素处理
    获取图像参数:图像(位置参数)

    img[x,y] #获取图像一个像素点的值,如果为单通道则返回一个值,多通道返回这个点所有通道的值(列表形式)
    blue = img[x,y,n] #获取多通道图像中一个点的一个指定通道n的值
    img[x,y] =255 # 给指定像素点赋值
    p = img[100,100]
    blue = img[100,100,0] 
    img[100,100] =255
    
  • 获取图像的属性
    img.shape #返回图像的行数、列数、通道数
    img.size # 返回图像的大小,行数列数通道数
    img.dtype # 返回图像的数据类型,如uinti8等

  • 获取图像区域

    frame = img.[200:400,200:400] #获取 200行到400行, 200行到400列之间的图像
    img.[200:400,200:400] = frame #将图像复制到200行到400行, 200行到400列之间的区域
    
  • 图像通道拆分合并

    b, g, r = cv2.split(img) # 将多通道拆分为单通道
    cv2.merge([b, g, r]) # 将多个单通道合并为多通道
    
  • 图像相加

    img = img1 + img2 #直接相加,如果像素相加后大于255则对255取模
    img = cv2.add(img1, img2) #如果像素相加后大于255,则该点取255
    
  • 图像融合

    img = cv2.addWeighted(img1, a, img2, b, 0) #a, b 分别为两张图像融合时的权重,0 为增加的亮度值。
    
  • 图像转换

    img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) #将图像从bgr格式转化为gray
    
  • 图像缩放

    img = cv2.resize(img, (100, 100)) #将图像缩放为100*100 大小
    img = cv2.resize(img, None, fx=0.5, fy=0.7)) #将图像在x轴方向缩小为0.5,y轴方向缩小0.7
    
  • 图像反转

    img = cv2.flip(img, filpCode) #filpCode=0 为上下翻转,filpCode>0 为左右翻转,filpCode < 0为先上下翻转再左右翻转。
    
  • 图像阈值分割
    rst, img = (img, thresh, maxval, type)
    img为图像,thresh为阈值,maxval为最大值, type为类型

    rst, img = (img, 127, 255, cv2.THRESH_BINARY) # 二值阈值化:像素值小于等于127则为0,大于127则为255
    rst, img = (img, 127, 255, cv2.THRESH_BINARY_INV) # 反二值阈值化:和上面相反,像素值小于等于127则为255,大于127则为0
    rst, img = (img, 127, 255, cv2.THRESH_TRUNC) # 截断阈值化:像素值小于127则为原值,大于127则为127
    rst, img = (img, 127, 255, cv2.THRESH_TOZERO) # 阈值化为0:像素值小于等于127则为0,大于127则不变
    rst, img = (img, 127, 255, cv2.THRESH_TOZERO_INV) # 反阈值化为0:和上面相反,像素值小于等于127则为原值,大于127则为0
    

待续。。。

你可能感兴趣的:(opencv)