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装饰器使用示例及实际应用例子
Mar 06 Python
用Python进行基础的函数式编程的教程
Mar 31 Python
Python的Django框架中if标签的相关使用
Jul 15 Python
谈谈如何手动释放Python的内存
Dec 17 Python
详解Python list 与 NumPy.ndarry 切片之间的对比
Jul 24 Python
python如何通过twisted实现数据库异步插入
Mar 20 Python
python如何统计序列中元素
Jul 31 Python
Python中查看变量的类型内存地址所占字节的大小
Jun 26 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
Aug 28 Python
django项目中新增app的2种实现方法
Apr 01 Python
python计算auc的方法
Sep 09 Python
Python爬虫入门教程02之笔趣阁小说爬取
Jan 24 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检测文件编码的方法示例
2014/04/25 PHP
四个常见html网页乱码问题及解决办法
2015/09/08 PHP
PHP多进程编程之僵尸进程问题的理解
2017/10/15 PHP
Laravel框架中缓存的使用方法分析
2019/09/06 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
js 判断计算字符串长度/判断空的简单方法
2013/08/05 Javascript
Egret引擎开发指南之创建项目
2014/09/03 Javascript
轻松创建nodejs服务器(10):处理POST请求
2014/12/18 NodeJs
js提交form表单,并传递参数的实现方法
2016/05/25 Javascript
浅谈JSON.stringify()和JOSN.parse()方法的不同
2016/08/29 Javascript
jquery.validate表单验证插件使用方法解析
2016/11/07 Javascript
如何使用headjs来管理和异步加载js
2016/11/29 Javascript
js实现百度地图定位于地址逆解析,显示自己当前的地理位置
2016/12/08 Javascript
bootstrapvalidator之API学习教程
2017/06/29 Javascript
AngularJS中的路由使用及实现代码
2017/10/09 Javascript
vue脚手架搭建过程图解
2018/06/06 Javascript
详解vue在项目中使用百度地图
2019/03/26 Javascript
微信小程序webview 脚手架使用详解
2019/07/22 Javascript
JS实现购物车基本功能
2020/11/08 Javascript
为什么JavaScript中0.1 + 0.2 != 0.3
2020/12/03 Javascript
python实现将html表格转换成CSV文件的方法
2015/06/28 Python
浅谈插入排序算法在Python程序中的实现及简单改进
2016/05/04 Python
浅谈python脚本设置运行参数的方法
2018/12/03 Python
python读写csv文件实例代码
2019/07/05 Python
python 爬取英雄联盟皮肤并下载的示例
2020/12/04 Python
英国独特的时尚和生活方式品牌:JOY
2018/03/17 全球购物
请用用Java代码写一个堆栈
2012/01/26 面试题
纬创Java面试题笔试题
2014/10/02 面试题
神路信息Java面试题目
2013/03/31 面试题
自我评价怎么写好呢?
2013/12/05 职场文书
企业厂长岗位职责
2013/12/17 职场文书
酒店行政人事部经理职务说明书
2014/02/26 职场文书
企业群众路线教育实践活动心得体会
2014/11/03 职场文书
SQLServer中exists和except用法介绍
2021/12/04 SQL Server