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使用递归解决全排列数字示例
Feb 11 Python
python中readline判断文件读取结束的方法
Nov 08 Python
用Python进行行为驱动开发的入门教程
Apr 23 Python
Python实现批量下载图片的方法
Jul 08 Python
python编程开发之类型转换convert实例分析
Nov 13 Python
python简单实现获取当前时间
Aug 27 Python
python 自动化将markdown文件转成html文件的方法
Sep 23 Python
Python 脚本的三种执行方式小结
Dec 21 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
Jan 09 Python
Pytest框架之fixture的详细使用教程
Apr 07 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
Apr 14 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
Jun 01 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自定义函数收代码
2010/08/01 PHP
php对mongodb的扩展(初出茅庐)
2012/11/11 PHP
php实现基于微信公众平台开发SDK(demo)扩展的方法
2014/12/22 PHP
php单链表实现代码分享
2016/07/04 PHP
浅谈PHP中的错误处理和异常处理
2017/02/04 PHP
PHP多种序列化/反序列化的方法详解
2017/06/23 PHP
JS操作XML中DTD介绍及使用方法分析
2019/07/04 PHP
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
js事件冒泡实例分享(已测试)
2013/04/23 Javascript
JS实现简单的顶部定时关闭层效果
2014/06/15 Javascript
js简单实现点击左右运动的方法
2015/04/10 Javascript
Node.js事件驱动
2015/06/18 Javascript
JS实现具备延时功能的滑动门菜单效果
2015/09/17 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
2015/10/27 Javascript
js提交form表单,并传递参数的实现方法
2016/05/25 Javascript
bootstrap学习笔记之初识bootstrap
2016/06/21 Javascript
Javascrip实现文字跳动特效
2016/11/27 Javascript
vue实现页面加载动画效果
2017/09/19 Javascript
js实现延迟加载的几种方法详解
2019/01/19 Javascript
JS实现音乐导航特效
2020/01/06 Javascript
JavaScript复制变量三种方法实例详解
2020/01/09 Javascript
javascript设计模式 ? 抽象工厂模式原理与应用实例分析
2020/04/09 Javascript
如何在postman测试用例中实现断言过程解析
2020/07/09 Javascript
OpenLayers实现图层切换控件
2020/09/25 Javascript
Python中字符串的处理技巧分享
2016/09/17 Python
python3中zip()函数使用详解
2018/06/29 Python
使用CSS变量实现炫酷惊人的悬浮效果
2019/04/26 HTML / CSS
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
JAVA程序设计笔试题面试题一套
2015/07/28 面试题
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
小学生安全演讲稿
2014/04/25 职场文书
2014年教研室工作总结
2014/12/06 职场文书
2015年组织部工作总结
2015/04/03 职场文书
义卖募捐活动总结
2015/05/09 职场文书
幼儿园开学家长寄语(2016春季)
2015/12/03 职场文书
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python