一.颜色空间转换

1.cv2.cvtColor(input_img,flag)

参数1是要转换的图像

参数2是转换类型  例如:cv2.COLOR_BGR2HSV (RGB->HSV) cv2.COLOR_BGR2GRAY(RGB->灰度图),常用

import cv2
import numpy as np

img = cv2.imread(\'timg5.jpg\')
img1 = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
img2 = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
cv2.namedWindow(\'img\',cv2.WINDOW_NORMAL)
cv2.namedWindow(\'Gray\',cv2.WINDOW_NORMAL)
cv2.namedWindow(\'hsv\',cv2.WINDOW_NORMAL)
cv2.imshow("img",img)
cv2.imshow(\'Gray\',img1)
cv2.imshow(\'hsv\',img2)
cv2.waitKey(0)
效果图:

                  

                原图             灰度图                                          HSV图

2.cv2.inRange(src, lowerb, upperb, dst=None)  二值化

src:输入原图,可以为单通道灰度图像,也可以为3通道彩色图像
lowerb:像素值区间下限
upperb:像素值区间上限
说明:单通道灰度图像,像素值低于lowerb和高于upperb的部分变成0,lower_red~upper_red之间的值变成255;三通道彩色图像,则每个通道分别与lowerb、upperb比较,然后按照相同办法修改像素值

import cv2
import numpy as np

img = cv2.imread(\'timg5.jpg\')

img2 = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
cv2.namedWindow(\'hsv\',cv2.WINDOW_NORMAL)
cv2.namedWindow(\'hsv1\',cv2.WINDOW_NORMAL)
cv2.namedWindow(\'hsv2\',cv2.WINDOW_NORMAL)

lower_blue = np.array([90, 50, 50])
upper_blue = np.array([130, 255, 255])
mask = cv2.inRange(img2, lower_blue, upper_blue)#二值化
res = cv2.bitwise_and(img2, img2, mask=mask) #按位与

cv2.imshow(\'hsv\',img2)
cv2.imshow(\'hsv1\',mask)
cv2.imshow(\'hsv2\',res)
cv2.waitKey(0)

                   

3.cv2.bitwise_and(src1, src2, dst=None, mask=None)

调用时若无mask参数则返回src1 & src2,若存在mask参数,则返回src1 & src2 & mask

src1:输入原图1
src2:输入原图2,src1与src2可以相同也可以不相同,可以是灰度图像也可以是彩色图

dst:若存在参数时:src1 & src2 或者 src1 & src2 & mask
mask:可以是单通道8bit灰度图像,也可以是矩阵,一般为二值化后的图像

 

 

 

 

 

 



 

 

版权声明:本文为deerfig原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/deerfig/p/11335074.html