图像的反转

图像颜色的反转一般分为两种:一种是灰度图片的颜色反转,另一种是彩色图像的颜色反转。

本节使用的原图如下:

1.1 灰度图像颜色反转

灰度图像每个像素点只有一个像素值来表示,色彩范围在0-255之间,反转方法255-当前像素值。

首先需要安装OpenCV:

导入本例所需的程序包:

In [ ]:

%matplotlib inline

import cv2

import numpy as np

from matplotlib import pyplot as plt

将原图转换为灰度图片:

In [ ]:

img = cv2.imread('./lena.jpg', 1)

height, width, deep = img.shape

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

plt.imshow(gray, cmap='gray')

plt.show()

反转图片中所有的像素值:

In [ ]:

dst = np.zeros((height,width,1), np.uint8)

for i in range(0, height):

    for j in range(0, width):

        grayPixel = gray[i, j]

        dst[i, j] = 255-grayPixel

将反转后的图像保存再显示出来,可以看到灰度颜色已经反转:

In [ ]:

cv2.imwrite("./lena_changed.jpg", dst)

dst = cv2.imread('./lena_changed.jpg', 1)

plt.imshow(dst)

plt.show()

1.2 彩色图像颜色反转

彩色图像的每个像素点由RGB三个元素组成,所以反转的时候需要用255分别减去b,g,r三个值。

重新读取图像并进行颜色反转:

In [ ]:

img = cv2.imread('./lena.jpg', 1)

height, width, deep = img.shape

# 彩色图像颜色反转 NewR = 255-R

dst = np.zeros((height, width, deep), np.uint8)

for i in range(0, height):

    for j in range(0,width):

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

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

将反转后的图像保存再显示出来,可以看到彩色图像颜色已经反转:

In [ ]:

dst2 = cv2.cvtColor(dst, cv2.COLOR_BGR2RGB)

plt.imshow(dst2)

plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值