YDYの博客

一只有理想的菜鸟

颜色空间

  • 色彩空间变换
  • 像素访问
  • 矩阵操作 +, -, *, /
  • 基本图形的绘制

颜色空间转换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import cv2

cv2.namedWindow('mywin', cv2.WINDOW_NORMAL)
cv2.resizeWindow('mywin',640,640)
img = cv2.imread('./test.jpg')

colorspace = [cv2.COLOR_BGR2RGB, cv2.COLOR_BGR2BGRA, cv2.COLOR_BGR2GRAY, cv2.COLOR_BGR2HSV, cv2.COLOR_BGR2YUV]
while True:
cvt_img=cv2.cvtColor(img, colorspace[2])
cv2.imshow('mywin', cvt_img)
key = cv2.waitKey(0)

if(key == ord('q')):
print('exit')
break
cv2.destroyAllWindows()

QQ截图20240321100949.png

numpy

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import numpy as np
import cv2
cv2.namedWindow('mywin', cv2.WINDOW_NORMAL)
cv2.resizeWindow('mywin',640,480)

img = np.zeros((480,640,3))

roi=img[100:200, 200:300]
roi[:,:]=[0,0,255]
while True:
cv2.imshow('mywin', img)
key = cv2.waitKey(0)
if(key == ord('q')):
print('exit')
break
cv2.destroyAllWindows()

QQ截图20240321100853.png

拷贝

1
2
3
4
5
6
7
8
9
10
11
12
13
import cv2
import numpy as np

img = cv2.imread('./test.jpg')

# img2 = img # 浅拷贝
img2 = img.copy() # 深拷贝
img[10:100, 10:100] = [0, 0, 255]
cv2.imshow('img', img)
cv2.imshow('img2', img2)

cv2.waitKey(0)
cv2.destroyAllWindows()
  • 浅拷贝
    QQ截图20240321101635.png

  • 深拷贝
    QQ截图20240321101831.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import cv2
import numpy as np

img = cv2.imread('./test2.png')

# # img2 = img # 浅拷贝
# img2 = img.copy() # 深拷贝
# img[10:100, 10:100] = [0, 0, 255]
# cv2.imshow('img', img)
# cv2.imshow('img2', img2)
b,g,r=cv2.split(img)

b[100:300,100:300]=255
g[100:300,100:300]=255

img2=cv2.merge((b,g,r))

cv2.imshow('b', b)
cv2.imshow('g', g)
cv2.imshow('r', r)

cv2.waitKey(0)
cv2.destroyAllWindows()

QQ截图20240321102940.png