Python+opencv 图像处理(五)

    灰度反转

“你说的黑是什么黑......”有一首歌的歌词是这样的。

在图像中,黑是什么?

很简单,就是0嘛。

因为在数字图像里,用0表示黑。

那么,“你说的白是什么白?”

在256灰度级的灰度图像中,白就是255。

所谓的灰度反转,也叫反色变换,就是把黑变成白,白变成黑。

那黑和白之间的那些灰度如何反转呢,用255-灰度值就行了。

专业一点,用表达式表示为:

g(x,y)=L-1-f(x,y)

L为图像的灰度级,一般的灰度图像中,L=256.

g(x,y)为结果图像,f(x,y)为原图像。

1、灰度图像反色变换

如下图,左边的黑色字母T,背景色为白色,转换后,变成了白色的字母T,背景色变成了黑色。

其代码如下:
import cv2
img = cv2.imread('E:/image/T.png',0)
dst=255-img
cv2.imshow("img",img)
cv2.imshow("dst",dst)
是不是so easy?
那是不是所谓的反色变换都有如此明显的结果?
来看看lena美女的反色变换结果:

仔细区分,还是能发现,黑变成了白(如头发,眼睛),白变成了黑(如帽沿,肩膀)。但黑和白之间的那些灰度,也都是用255减去了它本身的灰度值,我只能看出来有变化,变化是从这种灰这成了那种灰,反正我的视觉没有经过训练,分不太出来,哪个像素到底灰度值是多少。

2、彩色图像反色变换

对于彩色图像来说,反色变换就是将图像中的R、G、B分量反转,专业一点地用表达式来写即是:

如下图所示,还是用lena美女图来示意。

结果图像好像有点玄幻,但你要相信,反色过来就是这样的。RGB三基色的相加或相减混色,出来的效果就是这样啦。

其代码如下:

import cv2
img = cv2.imread('E:/image/le.jpg')
b,g,r=cv2.split(img)
r=255-r
g=255-g
b=255-b
dst=cv2.merge([b,g,r])
cv2.imshow("img",img)
cv2.imshow("dst",dst)

代码也不复杂,即我们前面所介绍过的拆分与合并,对各个通道进行反色变换,再合并回来就行。

写代码的时候,因为三个通道的操作是一样的,也可以把上述代码简写为:

import cv2
img = cv2.imread('E:/image/le.jpg')
dst=255-img
cv2.imshow("img",img)
cv2.imshow("dst",dst)

两段代码的运行结果是一样一样的哟。

查看Python+opencv图像处理历史记录。
张熹熹,公众号:python 图像处理python+opencv图像处理历史记录
(0)

相关推荐

  • 【从零学习OpenCV 4】颜色模型与转换

    重磅干货,第一时间送达 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍<从零学习OpenCV 4>.为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通 ...

  • 【从零学习OpenCV 4】两图像间的像素操作

    重磅干货,第一时间送达 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍<从零学习OpenCV 4>.为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通 ...

  • 常见的图像处理技术

    重磅干货,第一时间送达 本期文章中,让我们一起来学习以下内容. 通过PIL和OpenCV来使用一些常见的图像处理技术,例如将RGB图像转换为灰度图像.旋转图像.对图像进行消噪.检测图像中的边缘以及裁剪 ...

  • 使用OpenCV进行对象检测

    重磅干货,第一时间送达 目标检测是图像处理的重要组成部分.自动驾驶汽车必须检测车道,路面,其他车辆,人,标志和信号等.我们生活在一个动态的世界中,一切都在不断变化.对象检测的应用无处不在. 我们正在研 ...

  • 基于Opencv的图像单应性转换实战

    重磅干货,第一时间送达 同形转换 我们所常见的都是以这样的方式来处理图像:检测斑点,分割感兴趣的对象等.我们如何将它们从一种形式转换为另一种形式来处理这些图像呢?通过单应矩阵快速转换图像可以实现这个需 ...

  • python进阶—OpenCV之图像处理(一)

    文章目录 颜色空间转换 RGB色彩空间 HSV色彩空间 YUV色彩空间 简单的物体跟踪示例 HSV空间目标阈值选取 图像几何变换 图像的缩放 图像的位移 图像的旋转 图像的仿射 图像的投射 图像阈值( ...

  • 【从零学习OpenCV 4】直方图均衡化

    重磅干货,第一时间送达 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍<从零学习OpenCV 4>.为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通 ...

  • 自适应阈值化操作:adaptiveThreshold()函数

    在图像阈值化操作中,更关注的是从二值化图像中,分离目标区域和背景区域,但是仅仅通过设定固定阈值很难达到理想的分割效果.而自适应阈值,则是根据像素的邻域块的像素值分布来确定该像素位置上的二值化阈值.这样 ...

  • 【从零学习OpenCV 4】边缘检测原理

    重磅干货,第一时间送达 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍<OpenCV 4开发详解>.为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通 ...

  • 【从零学习OpenCV 4】图像中添加椒盐噪声

    重磅干货,第一时间送达 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍<从零学习OpenCV 4>.为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通 ...

  • OpenCV探索之路(五):图片缩放和图像金字塔

    对图像进行缩放的最简单方法当然是调用resize函数啦! resize函数可以将源图像精确地转化为指定尺寸的目标图像. 要缩小图像,一般推荐使用CV_INETR_AREA来插值:若要放大图像,推荐使用 ...