OpenCV图像颜色反转算法详解

yipeiwu_com6年前Python基础

前言

图像颜色的反转,比较简单的思路就是使用255减去当前值,从而得到反转后的图像.原始图片:

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减去当前灰度值,得到反转后的图像.图像如下:

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减去每一个通道的当前值.效果如下:


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python中类和实例如何绑定属性与方法示例详解

前言 python类与实例的方法的调用中觉得云里雾里,思考之后将自己的想法记录下,一来加深自己理解,巩固自己记忆,而来帮助一些想要学习python的朋友理解这门抽象的语言,由于Pytho...

深入理解Python中的*重复运算符

在python中有个特殊的符号“*”,可以用做数值运算的乘法算子,也是用作对象的重复算子,但在作为重复算子使用时一定要注意 注意的是:*重复出来的各对象具有同一个id,也就是指向在内存...

计算机二级python学习教程(2) python语言基本语法元素

计算机二级python学习教程(2) python语言基本语法元素

上一篇:计算机二级Python学习笔记(一) 其实昨天Python并没有安装成功,打开就报错: 于是今天先解决这个问题,搜了一下api-ms-win-crt-process- 1-1-...

Python从数据库读取大量数据批量写入文件的方法

使用机器学习训练数据时,如果数据量较大可能我们不能够一次性将数据加载进内存,这时我们需要将数据进行预处理,分批次加载进内存。 下面是代码作用是将数据从数据库读取出来分批次写入txt文本文...

基于python实现文件加密功能

基于python实现文件加密功能

这篇文章主要介绍了基于python实现文件加密功能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 生活中,有时候我们需要对一些重要的文...