本周事情较多,所以在这个上面画的时间少了一点,主要是更改了一个C++源码,链接:https://blog.csdn.net/qq_35724402/article/details/60466536。更改后如下所示:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23import cv2
import argparse
import numpy as np
def main(args):
img = cv2.imread(args.file)
hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
channels = cv2.split(hsv)
channels[1] = 255*np.ones([img.shape[0],img.shape[1]]).astype(np.uint8)
channels[2] = 200*np.ones([img.shape[0],img.shape[1]]).astype(np.uint8)
hsv = cv2.merge(channels)
rgb = cv2.cvtColor(hsv,cv2.COLOR_HSV2BGR)
cv2.imshow('image',rgb)
cv2.waitKey(0)
if __name__=="__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--file",default="test.png",help="Image that input")
args = parser.parse_args()
main(args)
具体效果可以参考链接里所示。
这里主要应用到的opencv处理技术有:
(1)cv2.cvtColor,可以用来进行图像通道的转换。
(2)cv2.split,可以将图像通道进行分离。
(3)cv2.merge,可以对图像通道进行合并。
实际上上述操作均可以通过数组赋值的方式完成,不再赘述。
参考:
1、https://blog.csdn.net/mokeding/article/details/17630625
2、https://blog.csdn.net/qq_35724402/article/details/60466536