【OpenCV 例程200篇】38. 图像的反色变换(图像反转)

『youcans 的 OpenCV 例程200篇 - 总目录』


【OpenCV 例程200篇】38. 图像的反色变换(图像反转)


灰度变换是图像增强的重要方法,可以使图像动态范围扩大、图像对比度增强,图像更清晰,特征更明显,从而改善图像的显示效果。

灰度变换就是按一定规则(灰度映射函数)修改图像每一个像素的灰度值,从而改变图像灰度的动态范围。按照灰度映射函数的性质,灰度变换可以分为线性变换、分段线性和非线性变换,非线性变换中对数变换、指数变换和幂律变换(n次幂、n次根)最为常用。


3.1 反色变换(图像反转)

图像的反色变换,即图像反转,将黑色像素点变白色,白色像素点变黑色。广义的反色变换也可以应用于彩色图像,即对所有像素点取补。

图像的反转处理可以增强暗色区域中的白色或灰色细节。

注意图像反转(Invert)与图像翻转(Flip)的区别:图像翻转是沿对称轴的几何变换,像素值不变;图像反转是像素颜色的逆转,像素位置不变。

例程:1.48 图像的反色变换

    # 1.48 图像的反色变换img = cv2.imread("../images/imgLena.tif")  # 读取彩色图像(BGR)imgGray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 颜色转换:BGR(OpenCV) -> Grayh, w = img.shape[:2]  # 图片的高度和宽度# imgInv = np.zeros_like(img)  # 创建与 img 相同形状的黑色图像imgInv = np.empty((w, h), np.uint8)  # 创建空白数组for i in range(h):for j in range(w):imgInv[i][j] = 255 - imgGray[i][j]plt.figure(figsize=(10,6))plt.subplot(131), plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)), plt.title("imgBGR"), plt.axis('off')plt.subplot(132), plt.imshow(imgGray, cmap='gray'), plt.title("imgGray"), plt.axis('off')plt.subplot(133), plt.imshow(imgInv, cmap='gray'), plt.title("imgInv"), plt.axis('off')plt.show()

在这里插入图片描述


(本节完)


版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/121453961)
Copyright 2022 youcans, XUPT
Crated:2021-11-18

【第4章:灰度变换与直方图】

37. 图像的灰度化处理和二值化处理
38. 图像的反色变换(图像反转)
39. 图像灰度的线性变换

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565983.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQLServer 条件查询语句大全

对于刚开始认识SQLServer数据库的小伙伴们来说添加一些条件查询是比较困难的,我整理了一份常用的条件查询语句供大家参考借鉴 一. 创建数据库 CREATE DATABASE Class ON PRIMARY ( NAME Bank_db_data, FILENAME D:\DATA\Class_data.mdf, SIZE 5MB, MAXSIZE 50…

【OpenCV 例程200篇】39. 图像灰度的线性变换

『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程200篇】39. 图像灰度的线性变换 线性灰度变换将原始图像灰度值的动态范围按线性关系扩展到指定范围或整个动态范围。 线性灰度变化对图像的每一个像素作线性拉伸,可以凸显图像的细节,提高图像的…

网络编程基础

网络协议 TCP/IP协议 IP地址与端口

获取焦点改变状态

表格显示文本内容,当用鼠标点击时获取到焦点文本变为可输入的输入框,点击空白处时失去焦点变为文本显示的文本内容 先看效果图 失去焦点的时候(文本内容只能看不能编辑) 获取焦点的时候(文本内容变为可以编辑的输入框…

【OpenCV 例程300篇】40. 图像分段线性灰度变换

『youcans 的 OpenCV 例程300篇 - 总目录』 【youcans 的 OpenCV 例程300篇】40. 图像分段线性灰度变换 分段线性变换函数可以增强图像各部分的反差,增强感兴趣的灰度区间、抑制不感兴趣的灰度级。 分段线性函数的优点是可以根据需要拉伸特征物的灰度细节&#xff…

Ajax链接输出数据库

使用Ajax链接数据库并且获取数据库里的内容显示在页面 两大步骤: 设计并实现数据库进行数据库链接并获取数据库内容显示 先看效果图 没有查询并显示数据之前效果 点击查询按钮之后获取数据库内容显示在页面 下面进行程序的讲解 一 数据库的设计及实现 新建一…

【OpenCV 例程200篇】41. 图像的灰度变换(灰度级分层)

『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程200篇】41. 图像的灰度变换(灰度级分层) 线性灰度变换将原始图像灰度值的动态范围按线性关系扩展到指定范围或整个动态范围。 分段线性变换函数可以增强图像各部分的反差,增强感兴趣…

python学习服务器端socket建立

C/S模式简介 Tcp通信模型 Udp通信模型 python标准库中的socket模块 用socket建立TCP服务器端 用socket建立UDP服务器端 socket TCP服务器端测试代码 #coding:utf-8 import socket#Host表示为本机地址 HOST PORT3214#默认为IPV4,TCP协议 ssocket.socket() s.bind((HOST,PORT))s.…

【OpenCV 例程200篇】42. 图像的灰度变换(比特平面分层)

『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程200篇】42. 图像的灰度变换(比特平面分层) 线性灰度变换将原始图像灰度值的动态范围按线性关系扩展到指定范围或整个动态范围。 分段线性变换函数可以增强图像各部分的反差,增强感兴…

SQLServer奇偶数的输出

编写SQLServer程序分别输出1-100内的奇数和偶数 一 1-100内奇数的输出 执行语句 declare number intset number1while number<101beginif number%21begin print numberendset number1end奇数输出的效果图 二 1-100内偶数的输出 执行语句 declare number intset number1…

python学习socket的客户端实现

服务端见点击打开链接 socket的异常 socket的TCP和UDP客户端模型 TCP的客户端 import socket#ip:127.0.0.1,port 3214 HOST #warning:Ip addr can only be dropped in server! PORT3214#AF_INET IPV4 #SOCK_DGRAM UDP ssocket.socket()#try to receive data from server &…

【OpenCV 例程200篇】43. 图像的灰度变换(对数变换)

『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程200篇】43. 图像的灰度变换&#xff08;对数变换&#xff09; 线性灰度变换将原始图像灰度值的动态范围按线性关系扩展到指定范围或整个动态范围。 对数变换可以由以下公式描述&#xff1a; Dtc∗log(1D)Dt c * log(1…

SQLServer判断循环

使用SQLServer语句对数据进行判断输出或者循环判断输出 不仅Java语言&#xff0c;C语言有判断和循环&#xff0c;SQLServer同样有判断和循环 1. 创建数据表 create table score ( stuId nvarchar(5) , stuSex nchar(2), chinese int, english int, math int )2. 在表中添加数…

【OpenCV 例程200篇】45. 图像的灰度直方图(cv2.calcHist)

『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程200篇】45. 图像的灰度直方图 图像直方图是反映图像像素分布的统计表&#xff0c;横坐标代表像素值的取值区间&#xff0c;纵坐标代表每一像素值在图像中的像素总数或者所占的百分比。 灰度直方图是图像灰度级的函数&am…

python下的mysql模块包装

#!/usr/bin/env python # -*- coding: utf-8 -*-""" 设计db模块的原因&#xff1a;1. 更简单的操作数据库一次数据访问&#xff1a; 数据库连接 > 游标对象 > 执行SQL > 处理异常 > 清理资源。db模块对这些过程进行封装&#xff0c;使得用户仅需关…

【OpenCV 例程200篇】44. 图像的灰度变换(伽马变换)

『youcans 的 OpenCV 例程200篇 - 总目录』 【OpenCV 例程200篇】44. 图像的灰度变换&#xff08;伽马变换&#xff09; 线性灰度变换将原始图像灰度值的动态范围按线性关系扩展到指定范围或整个动态范围。 幂律变换也称伽马变换&#xff0c;可以提升暗部细节&#xff0c;对发…

乱码的解决

关于JSP中request请求中乱码问题的解决 首先request请求有两种请求方式&#xff0c;一是post方法&#xff0c;二是get方法&#xff0c;方法不同&#xff0c;乱码的解决也稍有不同 关于post方法乱码的解决 获取参数之前&#xff0c;在接受请求的页面中规定字符编码格式 <…

【OpenCV 例程300篇】46. 直方图处理之直方图均衡化(cv2.equalizeHist)

『youcans 的 OpenCV 例程300篇 - 总目录』 【youcans 的 OpenCV 例程300篇】46. 直方图处理之直方图均衡化&#xff08;cv2.equalizeHist&#xff09; 图像直方图是反映图像像素分布的统计表&#xff0c;横坐标代表像素值的取值区间&#xff0c;纵坐标代表每一像素值在图像中的…

lingo的初步使用(集)

lingo里面!开始;结束之间的部分是注释。 !什么是集&#xff0c;为啥要有集&#xff1f; 我认为集的概念和面向对象里面的类比较像。一个集可以有一些成员&#xff0c;类似于面向对象里面的对象&#xff0c;集成员有相应的属性&#xff0c;类似面向对象里面的属性。 Lingo有两种…