OpenCV图像处理笔记[02]

7. 通道的拆分与合并

  • 拆分通道

    例:

    Import v2
    
    Import numpy as np
    
    a = cv.imread(“image\lenacolor.png”)
    
    b,g,r = cv2.split(a)
    
    cv2.imshow(“B”,b)
    
    cv2.imshow(“G”g)
    
    cv2.imshow(“R”,r)
    
    cv2.waitKey(0)
    
    cv2.destroyAllWindows()
    
    • 合并通道

    ​ bgr = cv2.merge([b,g,r])

    ​ rgb = cv2.merge([r,g,b])

    使用不同的顺序合并得到的结果不一样

8. 图像加法

  • numpy加法

    • 取模加法 :结果 = 图像1 + 图像2

    • 结果 = 图像1 + 图像2 = \(\begin{cases} 像素值 <= 255 , 图像1 + 图像2\\ 像素值 > 255, 结果对255取模\end{cases}\)

  • OpenCV加法

    • 饱和运算:结果 = cv2.add(图像1,图像2)

    • 结果 = cv2.add(图像1,图像2) $ = \begin{cases}像素值 <= 255, 图像1 + 图像2\像素值 > 255, 取值255\end{cases}$

9. 图像融合

  • 将两张或两张以上的图像信息融合到一张图像上。

  • 融合的图像含有更多的信息、能够更方便人来观察或者计算机处理。

  • 图像融合:结果图像 = 图像1*洗漱1 + 图像2 * 系数2 + 亮度调解量

    例: img = img1 * 0.3 + img2 * 0.7 + 18

    函数addweighted

    Dst = cv.addweighted(src1,alpha,src2,alpha,gamma) 参数gamma不能省略

10. 类型转换

  • 彩色转灰度

  • BGR转RGB

  • 灰度转BGR

    Opencv提供200多种不同类型之间的转换

    Cv2.COLOR_VGR2GRAY

    Cv2.COLOR_BGR2RGB

    Cv2.COLOR_GRAY2BGR

11. 图像缩放

  • Dst = cv2.resize(src,dsize[,dst[,fx[,fy[,interpolation]]]])

    Dst = cv2.resize(src,dsize)

    Desize(列,行)

    例:

    B = cv2.resize(a,(round(cols * 0.5),round(rows * 1.2)))

    列变为原来的0.5倍,行变为原来的1.2倍

    B = cv2.resize(a,none,fx = 1.2,fy = 0.5)

12. 图像反转

  • Dst = cv2.flip(src,flipCode)
    • flipCode = 0 以x轴为对称轴上下翻转
    • flipCode > 0 以y轴为对称轴左右翻转
    • flipcode < 0 以x轴、y轴上下左右同时翻转
posted @ 2022-08-03 10:59  Hecto  阅读(32)  评论(0)    收藏  举报