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中操作日期和时间之gmtime()方法的使用
May 22 Python
python 与GO中操作slice,list的方式实例代码
Mar 20 Python
python运行其他程序的实现方法
Jul 14 Python
Python调用系统底层API播放wav文件的方法
Aug 11 Python
PyQt弹出式对话框的常用方法及标准按钮类型
Feb 27 Python
Python学习笔记之变量、自定义函数用法示例
May 28 Python
Pandas中Series和DataFrame的索引实现
Jun 27 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
Jul 22 Python
Python PyInstaller安装和使用教程详解
Jan 08 Python
python实现实时视频流播放代码实例
Jan 11 Python
使用python脚本自动生成K8S-YAML的方法示例
Jul 12 Python
详解pandas赋值失败问题解决
Nov 29 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语法(5)
2006/10/09 PHP
动态新闻发布的实现及其技巧
2006/10/09 PHP
php方法调用模式与函数调用模式简例
2011/09/20 PHP
php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
2011/10/31 PHP
php存储过程调用实例代码
2013/02/03 PHP
php 表单提交大量数据发生丢失的解决方法
2014/03/03 PHP
又一个PHP实现的冒泡排序算法分享
2014/08/21 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
2016/11/25 PHP
php定期拉取数据对比方法实例
2019/09/22 PHP
JavaScript 异步调用框架 (Part 1 - 问题 & 场景)
2009/08/03 Javascript
JavaScript计算字符串中每个字符出现次数的小例子
2013/07/02 Javascript
用jQuery实现的智能隐藏、滑动效果的返回顶部代码
2014/03/18 Javascript
javascript模拟评分控件实现方法
2015/05/13 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
2016/09/05 Javascript
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
使用Vue自定义指令实现Select组件
2018/05/24 Javascript
JS中appendChild追加子节点无效的解决方法
2018/10/14 Javascript
vue2.0基于vue-cli+element-ui制作树形treeTable
2019/04/30 Javascript
原生js实现购物车功能
2020/09/23 Javascript
JavaScript实现雪花飘落效果
2020/12/27 Javascript
CentOS中升级Python版本的方法详解
2017/07/10 Python
python实现抖音视频批量下载
2018/06/20 Python
机器学习之KNN算法原理及Python实现方法详解
2018/07/09 Python
python如何制作英文字典
2019/06/25 Python
python 实现list或string按指定分段
2019/12/25 Python
浅谈Python程序的错误:变量未定义
2020/06/02 Python
浅谈keras.callbacks设置模型保存策略
2020/06/18 Python
大学毕业生最详细的自我评价分享
2013/11/18 职场文书
个人实用的自我评价范文
2013/11/23 职场文书
机械设计专业大学生职业生涯规划书范文
2014/09/13 职场文书
2015年小学总务工作总结
2015/07/21 职场文书
2017年大学生寒假社会实践活动总结
2016/04/06 职场文书
快消品行业营销模式与盈利模式分享
2019/09/27 职场文书
关于antd tree 和父子组件之间的传值问题(react 总结)
2021/06/02 Javascript
macos系统如何实现微信双开? mac登录两个微信以上微信的技巧
2022/07/23 数码科技