python--图像颜色反转
·
python读取图像并将图像颜色反转,最常见的为了视觉效果将黑白图片颜色对调。
import cv2
# opencv读取图像
img = cv2.imread('E:/liuying/Pictures/timg.jpg', 1)
cv2.imshow('img', img)
img_shape = img.shape # 图像大小(565, 650, 3)
print(img_shape)
h = img_shape[0]
w = img_shape[1]
# 彩色图像转换为灰度图像(3通道变为1通道)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
print(gray.shape)
# 最大图像灰度值减去原图像,即可得到反转的图像
dst = 255 - gray
cv2.imshow('dst', dst)
cv2.waitKey(0)
也可以用一张色彩比较丰富的彩色图像,灰度化以后进行颜色反转。
import cv2
# opencv读取图像
img = cv2.imread('E:/liuying/Pictures/lighthouse.png', 1)
print(img.shape)
cv2.imshow('img', img)
img_shape = img.shape # 图像大小(565, 650, 3)
print(img_shape)
h = img_shape[0]
w = img_shape[1]
# 彩色图像转换为灰度图像(3通道变为1通道)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('gray', gray)
print(gray.shape)
# 最大图像灰度值减去原图像,即可得到反转的图像
dst = 255 - gray
cv2.imshow('dst', dst)
cv2.waitKey(0)
结果可以看到灰度图像通道数变成1,颜色范围是0-255,反转以后明显看到亮的地方变暗,暗的地方变亮。


同样的也可以将彩色图像直接进行颜色反转。由于opencv是将图像读取到一个图像数组中,因此可以直接用数组计算。
import cv2
# opencv读取图像
img = cv2.imread('E:/liuying/Pictures/lighthouse.png', 1)
print(img.shape)
cv2.imshow('img', img)
img_shape = img.shape # 图像大小(565, 650, 3)
print(img_shape)
h = img_shape[0]
w = img_shape[1]
# 最大图像灰度值减去原图像,即可得到反转的图像
dst = 255 - img
cv2.imshow('dst', dst)
cv2.waitKey(0)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)