Python图像处理---灰度反转

文章介绍了一个用于灰度图像反转的Python函数,该函数接受np.uint8格式的灰度图作为输入,通过计算灰度值的负值并加上最大值来实现反转。作者提供了代码示例,展示如何使用该函数处理Lena图像,并用OpenCV读取和显示图像,以比较原图和反转后的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近做的项目需要用到灰度反转,就写了一下,浅浅的记录一下,我已经封装成函数了,大家有需自取~
灰度反转函数
def reverse_gray(img):
    """灰度反转
    输入:灰度图,np.uint8格式
    输出:反转图,np.uint8格式
    """
    max1 = img.max()
    img1 = img* (-1)
    img2 = img1 + max1
    return img2
示例
imgpath  = r"./Simulation-Result-on-Lena.png"
img = cv2.imread(imgpath,0)
img1 = reverse_gray(img)
plt.subplot(121)
plt.imshow(img,cmap='gray')
plt.subplot(122)
plt.imshow(img1,cmap='gray')
plt.show()

在这里插入图片描述

### 实现灰度图像的颜色反转 对于灰度图像的颜色反转,可以通过遍历每一个像素并将其值设置为 `255` 减去原始像素值来完成。以下是具体的实现方式: #### 使用 OpenCV 和 NumPy 进行灰度图像颜色反转 通过读取图像文件,并利用 OpenCV 库中的函数将彩色图像转换为灰度图像,之后创建一个新的数组用于存储经过处理后的数据。 ```python import cv2 import numpy as np # 加载图像 img = cv2.imread('image0.jpg', 1) # 显示原图 cv2.imshow('Original Image', img) # 获取图像尺寸 height, width = img.shape[:2] # 转换为灰度模式 gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)[^1] # 创建空白画布准备填充计算得到的新像素值 reversed_gray_img = np.zeros((height, width), dtype=np.uint8) for y in range(height): for x in range(width): reversed_gray_img[y, x] = 255 - gray_img[y, x][^4] # 展示结果 cv2.imshow('Reversed Gray Image', reversed_gray_img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 这段代码展示了如何加载一张图片,先转成灰度形式再逐个修改其亮度达到翻转效果。 另外还有一种更简洁的方法可以直接应用向量化操作而无需显式的循环结构: ```python import cv2 import numpy as np def reverse_grayscale(image_path): # 读入灰度图 image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE) # 颜色反转运算 inverted_image = 255 - image return inverted_image inverted = reverse_grayscale('./Simulation-Result-on-Lena.png') cv2.imshow("Inverted", inverted) cv2.waitKey(0); cv2.destroyAllWindows(); ``` 此版本定义了一个名为 `reverse_grayscale()` 的辅助函数接受路径参数返回已处理过的图像对象[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值