python图像将某通道颜色改变_python-opencv-图像颜色反转

图像是由一个一个的像素组成的,每个像素又是由一个个不同的颜色值(OpenCV中为bgr模式)组成,其中每个颜色通道的值均为0-255。

所谓图像的颜色反转,就是将每个颜色通道值用255减去原通道值,得到一个新的颜色通道值,再重新组合成新的bgr颜色通道产生新像素而形成新的图像。举个极端的例子,比如一个纯白色像素点的值为(255,255,255),它经过颜色反转变换后形成的新的像素点为(0,0,0),也就是变成了纯黑色像素点。

灰度图的图像颜色反转:

importcv2importnumpy as np

img= cv2.imread("3.jpg",0) #读取一张图片,灰度

height,width=img.shape

dst=np.zeros((height,width,1),np.uint8)for i inrange(height):for j inrange(width):

dst[i,j]=255-img[i,j]

cv2.imshow('img',img)

cv2.imshow('dst',dst)

cv2.waitKey()#窗口等待任意键盘按键输入,0为一直等待,其他数字为毫秒数

效果图:

bgr图像的图像颜色反转:

对于bgr图像而言,我们需要对b(蓝色)、g(绿色)、r(红色)三个颜色通道做处理。首先,我们仍然使用imread()函数读取原图像数据并使用shape属性获取相关图像信息,然后开始遍历像素点,与灰度图不同的是,我们需要对b、g、r三个颜色通道同时做用255减去当前颜色通道值的处理,然后再组成新的bgr值赋值给像素点,从而实现bgr图像的图像颜色反转。

importcv2importnumpy as np

img= cv2.imread("2013.jpg",1) #读取一张图片,彩色

cha=img.shape

height,width,deep=cha

dst=np.zeros((height,width,3),np.uint8)for i inrange(height): #色彩反转for j inrange(width):

b,g,r=img[i,j]

dst[i,j]=(255-b,255-g,255-r)

cv2.imshow('img',img)

cv2.imshow('dst',dst)

cv2.waitKey()

效果图:

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值