一、问题
1.1 RGB和RGBA的区别
在日常的画图中,我们一般会使用RGB或者RGBA作为颜色编码格式。
RGBA有两种格式,两者之间是可以通过除以255或者乘以255来相互转化。
1:0-255之间的,例如(255, 0, 0, 255)
2:0-1之间的,例如(1, 0, 0, 1)。
1.2 Cv2包和matplotlib的颜色差异
使用相同的RGB值,Cv2包和matplotlib包画出来的图形的颜色不一样。使用代码进行测试如下。
import cv2
import numpy as np
import matplotlib.pyplot as plt
# cv2画图
cv2_RGBA = (255, 0, 0, 255)
img = np.zeros((1000, 1000, 3))
img[:, :, :] = 255
cv2.circle(img=img, center=(500, 500), color=cv2_RGBA, radius=20, thickness=-1)
cv2.imwrite("./cv2_img.PNG", img)
# plt画图
plt_RGBA = (1, 0, 0, 1)
fig, ax = plt.subplots()
plt.scatter(x=1, y=1, c=plt_RGBA, s=100)
plt.axis("off")
plt.savefig("plt_img.PNG")
结果如下图所示,我们可以看出相同的RGBA值画出来的图像颜色却不一样。
|
|