图像处理,灰度变换、图像反转、幂律变换、对比度变换

该篇博客介绍了图像处理中的灰度变换、图像反转、伽马变换和对比度拉伸等技术。通过Python的OpenCV库实现,包括从原始彩色图像转换为灰度图像,然后进行图像反转,接着应用伽马变换调整图像的亮度和对比度,最后通过对比度拉伸优化图像的视觉效果。展示了一系列处理前后的图像,并用代码详细阐述了每个步骤的操作过程。
摘要由CSDN通过智能技术生成

灰度变换、图像反转、幂律变换、对比度变换

import cv2
import numpy as np

OriginalImg = cv2.imread('cns.jpg')
R ,G, B = cv2.split(OriginalImg)
# print(R.shape)  # print(G.shape) # print(B.shape)

#灰度变换
NewImg = R*0.299 + G*0.587 + B*0.114
NewImg1=np.uint8(NewImg)
print(NewImg1.max())
print(NewImg1.min())
#图像反转
NewImg2 = 255-NewImg1

#伽马变换 uint8数据整形化
NewImg3 = np.uint8(((NewImg1/NewImg1.max())**0.4)*NewImg1.max())#必须先将灰度值收缩到0-1之间再进行幂律变换

#对比度拉伸
min = 100
max = 200
temp = np.zeros((NewImg1.shape[0],NewImg1.shape[0]))
for i in range(NewImg1.shape[0]):
    for j in range(NewImg1.shape[1]):
        if NewImg1[i,j] < min:
            temp[i,j] = 0
        elif NewImg1[i,j] > max:
            temp[i,j] = 254
        else:
            temp[i,j] = (254/(max-min))*(NewImg1[i,j]-230)+254

# print(temp)
# print(NewImg1)
cv2.namedWindow('OriginalImg',0)#新建一个图形显示窗口,0表示可按规则缩放图片
cv2.imshow('OriginalImg',OriginalImg)

cv2.namedWindow('NewImg',0)
cv2.resizeWindow('NewImg',(280,280))
cv2.imshow('NewImg',NewImg1)

cv2.namedWindow('NewImg2',0)
cv2.resizeWindow('NewImg2',(280,280))
cv2.imshow('NewImg2',NewImg2)

cv2.namedWindow('NewImg3',0)
cv2.resizeWindow('NewImg3',(280,280))
cv2.imshow('NewImg3',NewImg3)

cv2.namedWindow('NewImg4',0)
cv2.resizeWindow('NewImg4',(280,280))
cv2.imshow('NewImg4',np.uint8(temp))

cv2.waitKey(0)

在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

6.11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值