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爬虫之爬虫编写全记录
Nov 06 Python
Python实现的下载8000首儿歌的代码分享
Nov 21 Python
python 全局变量的import机制介绍
Sep 07 Python
Python基于回溯法解决01背包问题实例
Dec 06 Python
Python和Java进行DES加密和解密的实例
Jan 09 Python
windows7 32、64位下python爬虫框架scrapy环境的搭建方法
Nov 29 Python
Python删除n行后的其他行方法
Jan 28 Python
python远程邮件控制电脑升级版
May 23 Python
python使用原始套接字发送二层包(链路层帧)的方法
Jul 22 Python
python 动态调用函数实例解析
Oct 21 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
Nov 17 Python
python 多线程爬取壁纸网站的示例
Feb 20 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读写文件的方法(生成HTML)
2006/11/27 PHP
PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
2011/07/03 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
JQuery 遮罩层实现(mask)实现代码
2010/01/09 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
2015/10/10 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
重新理解JavaScript的六种继承方式
2017/03/24 Javascript
js实现文字列表无缝滚动效果
2017/06/23 Javascript
原生js+cookie实现购物车功能的方法分析
2017/12/21 Javascript
微信小程序的部署方法步骤
2018/09/04 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
2020/12/10 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
2021/01/20 Vue.js
[02:34]肉山说——泡妞篇
2014/09/16 DOTA
matplotlib设置legend图例代码示例
2017/12/19 Python
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
基于Python log 的正确打开方式
2018/04/28 Python
Pycharm 操作Django Model的简单运用方法
2018/05/23 Python
python和shell监控linux服务器的详细代码
2018/06/22 Python
python使用suds调用webservice接口的方法
2019/01/03 Python
详解PyCharm+QTDesigner+PyUIC使用教程
2019/06/13 Python
Python高并发解决方案实现过程详解
2020/07/31 Python
pytorch 计算Parameter和FLOP的操作
2021/03/04 Python
计算机专业自荐信范文
2014/05/28 职场文书
煤矿安全生产标语
2014/06/06 职场文书
励志演讲稿300字
2014/08/21 职场文书
街道党风廉政建设调研报告
2015/01/01 职场文书
2015教师年度工作总结范文
2015/04/07 职场文书
居委会工作总结2015
2015/05/18 职场文书
Matlab求解数组中的最大值及它所在的具体位置
2021/04/16 Python
python入门学习关于for else的特殊特性讲解
2021/11/20 Python
MySQL如何修改字段类型和字段长度
2022/06/10 MySQL
CSS控制继承中的height能变为可继承吗
2022/06/10 HTML / CSS
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript