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 判断一个进程是否存在
Apr 09 Python
进一步探究Python中的正则表达式
Apr 28 Python
Python学习入门之区块链详解
Jul 25 Python
Python requests发送post请求的一些疑点
May 20 Python
python实现猜单词小游戏
May 22 Python
Django REST Framework序列化外键获取外键的值方法
Jul 26 Python
python rsync服务器之间文件夹同步脚本
Aug 29 Python
python多进程间通信代码实例
Sep 30 Python
pygame库实现移动底座弹球小游戏
Apr 14 Python
python中shell执行知识点
May 06 Python
浅谈Python从全局与局部变量到装饰器的相关知识
Jun 21 Python
Python matplotlib 利用随机函数生成变化图形
Apr 26 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
phpStudy 2016 使用教程详解(支持PHP7)
2017/10/18 PHP
PHP设计模式之适配器模式定义与用法详解
2018/04/03 PHP
JavaScript 核心参考教程 内置对象
2009/10/13 Javascript
JavaScript 图片预览效果 推荐
2009/12/22 Javascript
JavaScript中的Array对象使用说明
2011/01/17 Javascript
jquery获取下拉列表的值为null的解决方法
2011/03/18 Javascript
JQuery操作表格(隔行着色,高亮显示,筛选数据)
2012/02/23 Javascript
关于js中for in的缺陷浅析
2013/12/02 Javascript
深入剖析JavaScript中的枚举功能
2014/03/06 Javascript
Jquery插件编写简明教程
2014/03/25 Javascript
JS实现先显示大图后自动收起显示小图的广告代码
2015/09/04 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
2015/10/23 Javascript
详解js创建对象的几种方法及继承
2019/04/12 Javascript
详解Element-UI中上传的文件前端处理
2019/08/07 Javascript
微信小程序 textarea 层级过高问题简单解决方案
2019/10/14 Javascript
[03:01]DOTA2英雄基础教程 露娜
2014/01/07 DOTA
[02:50]【扭转乾坤,只此一招】DOTA2全新版本永雾林渊开启新篇章
2020/12/24 DOTA
Python中map,reduce,filter和sorted函数的使用方法
2015/08/17 Python
动态规划之矩阵连乘问题Python实现方法
2017/11/27 Python
对Python中type打开文件的方式介绍
2018/04/28 Python
Python定时任务APScheduler的实例实例详解
2019/07/22 Python
css3实现图片遮罩效果鼠标hover以后出现文字
2013/11/05 HTML / CSS
加拿大百叶窗和窗帘定制网站:Blinds
2017/01/30 全球购物
SmartBuyGlasses美国官网:太阳眼镜和眼镜
2017/08/20 全球购物
TUMI香港官网:国际领先的行李箱、背囊品牌
2021/03/01 全球购物
军训的自我鉴定
2013/12/10 职场文书
社区安全检查制度
2014/02/03 职场文书
优秀教师申报材料
2014/12/16 职场文书
史上最牛辞职信
2015/05/13 职场文书
初中家长意见
2015/06/03 职场文书
广播体操比赛主持词
2015/06/29 职场文书
Python中zipfile压缩包模块的使用
2021/05/14 Python
pytorch 实现多个Dataloader同时训练
2021/05/29 Python
手把手教你导入Go语言第三方库
2021/08/04 Golang
分位数回归模型quantile regeression应用详解及示例教程
2021/11/02 Python
vmware虚拟机打不开vmx文件怎么办 ?vmware虚拟机vmx文件打开方法
2022/04/08 数码科技