OpenCV图像颜色反转算法详解

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

本文详解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 相关产品和应用

全部下载

专题列表