2024年Python最全灰度变换(python)(1),2024年最新毕业一年萌新的Python大厂面经

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

cv2.waitKey(0)保持显示窗口,直到用户按下任意键

代码:

#灰度反转
import cv2

# opencv读取图像
img = cv2.imread('gray.png', 1)

#检查图像是否成功加载
if img is not None:
    cv2.imshow('img', img)

    # 得到图像的尺寸
    img_shape = img.shape  # 图像大小(518, 921, 3)
    print("Original image shape:",img_shape)

    # 彩色图像转换为灰度图像(3通道变为1通道)
    #将每个像素的RGB值转换为一个单一的灰度值
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    print("Gray image shape:",gray.shape)


    # 最大图像灰度值减去原图像,即可得到反转的图像
    inverted_image = 255 - gray
    cv2.imshow('Inverted Image', inverted_image)
    cv2.waitKey(0)
else:
    print("Failed to load image.")

以下这个彩色图可以看的更加明显一点。

import cv2

# opencv读取图像
img = cv2.imread('rgb.png', 1)

#检查图像是否成功加载
if img is not None:
    cv2.imshow('img', img)

    # 得到图像的尺寸
    img_shape = img.shape  # 图像大小
    print("Original image shape:",img_shape)
    # 得到宽高
    height = img_shape[0]
    wide = img_shape[1]

    # 彩色图像转换为灰度图像(3通道变为1通道)
    #将每个像素的RGB值转换为一个单一的灰度值
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    print("Gray image shape:",gray.shape)

    cv2.imshow("gray",gray)

    # 最大图像灰度值减去原图像,即可得到反转的图像
    inverted_image = 255 - gray
    cv2.imshow('Inverted Image', inverted_image)
    cv2.waitKey(0)
else:
    print("Failed to load image.")

对数变换

对数变换的通式为:s=c*log(1+r)

思路:

彩色图像->灰度图像->c*log*(1+原始图像)->将数值归一化(限定在0~255)

np.log1p(gray)返回 log(1 + gray) 的值。
np.uint8(transformed_image)将值限定在八位二进制(0~255)之间

代码:

当c=1时:

# 对数变换
import cv2
import numpy as np

# opencv读取图像
img = cv2.imread('gray.png', 1)

# 检查图像是否成功加载
if img is not None:
    # 将图像灰度化灰度化
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    # 对图像进行对数变换c*log(1+x)
    transformed_image = 1 * np.log1p(gray)
    # 将结果缩放到0~255之间 8表示8位,将值限定在0~255之间
    transformed_image = np.uint8(transformed_image)

    # 显示图像
    cv2.imshow('gray', gray)
    cv2.imshow('Log Transformed Image', transformed_image)
    # 窗口保持
    cv2.waitKey(0)
else:
    print("Failed to load image.")

 当c=10时:

当c=20时:

当c=30时:

幂律(伽马)变换

幂律变换的形式为:s=c*r^y

思路:

彩色图像->灰度图像->将图像的值缩小到[0,1]->幂律变换->将数值归一化(限定在0~255)

gray=img.astype(np.float32)/255.0 先将图像转换成浮点类型,并将像素值归一到[0,1]范围内
corrected_image=np.power(img,1)img的1次方
corrected_image=(corrected_image*255).astype(np.uint8)和前面一样,先将值重新回到整数范围,之后进行归一化

代码:

当c=255,y=1时:

#伽马变换
import cv2
import numpy as np

# opencv读取图像
img = cv2.imread('gray.png', 1)

# opencv读取图像
img = cv2.imread('gray.png', 1)

# 检查图像是否成功加载
if img is not None:
    # 将图像灰度化灰度化
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    #将图像转换为浮点类型
    gray=img.astype(np.float32)/255.0

    #应用伽马变换
    corrected_image=np.power(img,1)
    #将结果缩放到0~255之间
    corrected_image=(corrected_image*255).astype(np.uint8)

    # 显示图像
    cv2.imshow('Original Image', gray)
    cv2.imshow('Gamma Corrected Image',corrected_image)
    # 窗口保持
    cv2.waitKey(0)
else:
    print("Failed to load image.")

当c=255,y=10时:

最后

不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~

给大家准备的学习资料包括但不限于:

Python 环境、pycharm编辑器/永久激活/翻译插件

python 零基础视频教程

Python 界面开发实战教程

Python 爬虫实战教程

Python 数据分析实战教程

python 游戏开发实战教程

Python 电子书100本

Python 学习路线规划

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值