OpenCV图像颜色反转算法详解


Posted in Python onMay 13, 2019

前言

图像颜色的反转,比较简单的思路就是使用255减去当前值,从而得到反转后的图像.原始图片:

OpenCV图像颜色反转算法详解

1.灰度图像的颜色反转

import cv2
import numpy as np

# 灰度 0-255 255-当前灰度值
img = cv2.imread('image0.jpg', 1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]

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

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

for i in range(height):
  for j in range(width):
    grayPixel = 255 - gray[i, j]
    dst[i, j] = grayPixel

cv2.imshow('image', dst)
cv2.waitKey(0)

用255减去当前灰度值,得到反转后的图像.图像如下:

OpenCV图像颜色反转算法详解

2.BGR图像的反转

import cv2
import numpy as np

img = cv2.imread('image0.jpg', 1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]

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

for i in range(height):
  for j in range(width):
    (b, g, r) = img[i, j]
    b = 255 - b
    g = 255 - g
    r = 255 - r
    dst[i, j] = (b, g, r)


cv2.imshow('image', dst)
cv2.waitKey(0)

BGR图像反转也是一样,同样是使用255减去每一个通道的当前值.效果如下:

OpenCV图像颜色反转算法详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python使用scrapy抓取网站sitemap信息的方法
Apr 08 Python
Python随机读取文件实现实例
May 25 Python
Python实现的概率分布运算操作示例
Aug 14 Python
python 将字符串转换成字典dict的各种方式总结
Mar 23 Python
对python GUI实现完美进度条的示例详解
Dec 13 Python
对python多线程中Lock()与RLock()锁详解
Jan 11 Python
Python2与Python3的区别实例分析
Apr 11 Python
使用python 写一个静态服务(实战)
Jun 28 Python
Python3连接Mysql8.0遇到的问题及处理步骤
Feb 17 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
Apr 20 Python
Eclipse配置python默认头过程图解
Apr 26 Python
Python+unittest+DDT实现数据驱动测试
Nov 30 Python
搞清楚 Python traceback的具体使用方法
May 13 #Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
May 13 #Python
Python 通过打码平台实现验证码的实现
May 13 #Python
利用python和百度地图API实现数据地图标注的方法
May 13 #Python
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
May 13 #Python
为什么你还不懂得怎么使用Python协程
May 13 #Python
Python玩转加密的技巧【推荐】
May 13 #Python
You might like
php+mysqli实现批量执行插入、更新及删除数据的方法
2015/01/29 PHP
PHP实现简单汉字验证码
2015/07/28 PHP
Laravel框架实现的批量删除功能示例
2019/01/16 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
2020/01/26 PHP
PHP http请求超时问题解决方案
2020/11/13 PHP
JS 控制非法字符的输入代码
2009/12/04 Javascript
javascript 面向对象的JavaScript类
2010/05/04 Javascript
jquery 读取页面load get post ajax 四种方式代码写法
2011/04/02 Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
2013/01/25 Javascript
js时间日期和毫秒的相互转换
2013/02/22 Javascript
js字符串截取函数substr substring slice使用对比
2013/11/27 Javascript
jquery插件推荐 jquery.cookie
2014/11/09 Javascript
Javascript数组操作函数总结
2015/02/05 Javascript
jQuery制作input提示内容(兼容IE8以上)
2017/07/05 jQuery
微信小程序删除处理详解
2017/08/16 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
2020/06/17 Javascript
ionic2懒加载配置详解
2017/09/01 Javascript
从零开始搭建webpack+react开发环境的详细步骤
2018/05/18 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
javascript实现图片轮播代码
2019/07/09 Javascript
Vue分页插件的前后端配置与使用
2019/10/09 Javascript
Python实现公历(阳历)转农历(阴历)的方法示例
2017/08/22 Python
Python 中判断列表是否为空的方法
2019/11/24 Python
python 串口读取+存储+输出处理实例
2019/12/26 Python
C语言50道问题
2014/10/23 面试题
小学生演讲稿
2014/01/12 职场文书
优秀导游先进事迹材料
2014/01/25 职场文书
CAD制图人员的自荐信
2014/02/07 职场文书
幼儿教师研修感言
2014/02/12 职场文书
纪律教育学习心得体会
2014/09/02 职场文书
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
2016五一手机促销广告语
2016/01/28 职场文书
详解mysql三值逻辑与NULL
2021/05/19 MySQL
使用react-virtualized实现图片动态高度长列表的问题
2021/05/28 Javascript
一篇文章告诉你如何实现Vue前端分页和后端分页
2022/02/18 Vue.js
redis protocol通信协议及使用详解
2022/07/15 Redis