OpenCV图像颜色反转算法详解

月亮慢半拍
月亮慢半拍
发布时间:2026-10-13| 6人浏览过
原创

本文详解OpenCV中图像颜色反转的实现方法。通过255减去像素值,分别演示灰度图像与BGR彩色图像的反转逻辑。提供完整的Python代码示例,展示如何遍历像素并计算反转后的RGB分量,帮助开发者快速掌握基础图像处理技术。

前言

前言

图像颜色反转基本原理

实现图像颜色反转的核心思路十分直观:利用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减去当前的灰度值,即可生成反转后的图像。具体效果如下所示:

BGR彩色图像的反转处理

2. BGR图像的反转

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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。