精华内容
下载资源
问答
  • matlab指数灰度变换
    2021-04-19 06:52:37

    实验一 Matlab 图像处理基础及图像灰度变换 一、 实验目的 了解 Matlab 平台下的图像编程环境, 熟悉 Matlab 中的 DIP (Digital Image Processing)工具箱;掌握 ......

    课程设计报告册? 课程名称: 课题名称: 专业班级: 姓名: MATLAB 课程设计 灰度变换增强 Bob Wang 学 号: 信息楼 220 15164 课程设计主要场所: 时间: ......

    实验一 Matlab 图像处理基础及图像灰度变换一、 实验目的了解 Matlab 平台下的图像编程环境, 熟悉 Matlab 中的 DIP (Digital Image Processing)工具箱;掌握 Matlab ......

    图像处理灰度变换实验_其它_工作范文_实用文档。实用标准一. 实验名称:空间图像增强(一) 一. 实验目的 1. 熟悉和掌握利用 matlab 工具进行数字图像的读、写、......

    基于灰度变换的图像增强及 Matlab 授课教师: 杨秀清 学号: 200720906041 二〇 〇九年十 二月 基于灰度变换的图像增强及 Matlab 实现 摘要: 图像增强不仅可以用于提高......

    实验一 Matlab 图像处理基础及图像灰度变换 一、 实验目的 了解 Matlab 平台下的图像编程环境,熟悉 Matlab 中的 DIP (Digital Image Processing)工具箱;掌握 Matlab......

    图像处理灰度线性变换matlab代码_数学_自然科学_专业资料。%灰度求反 fo...

    学号: 20994055003 数字图像处理论文 二〇 一二年十 月 基于灰度变换的图像增强及 Matlab 实现 摘要: 图像增强不仅可以用于提高图像的视觉外观, 而且还是图像边缘......

    _ 课程设计报告册 课程名称: MATLAB 课程设计 课题名称: 灰度变换增强...

    Matlab二维灰度图象分析及变换处理要点_其它_职业教育_教育专区。《基础强化训练》设计报告 题 目: 二维灰度图象的统计分析及变换处理 专业班级: 学生姓名: 指导......

    图像处理灰度变换实验 图像处理灰度变换实验 一. 实验名称:空间图像增强(一) 一. 实验目的 1. 熟悉和掌握利用 matlab 工具进行数字图像的读、写、显示、像素处理......

    学号: 0000000000 姓名: 0000000 实验一 灰度变换与空间域滤波一.实验目的及要求 1.了解MATLAB的操作环境和图像处理工具箱Image Processing Toolbox的功能; 2.加深......

    MATLAB领域处理和图像灰度变换_电脑基础知识_IT/计算机_专业资料。实学号...

    附录1 课程实验报告格式实验名称 课程名称 姓名 班内序号 实验内容 齐昌成 13 实验三:灰度变换增强 数字图像处理 专业、班级 信计 11102 班 实验时间 3 月 11......

    数字图像处理实验报告班 级: 姓名: 学号: 1/6 数字图像处理实验报告 一.实验名称: 图像灰度变换二.实验目的:1 学会使用 Matlab; 2 学会用 Matlab 软件对图像......

    图像处理灰度变换实验_数学_自然科学_专业资料。一. 实验名称:空间图像增强(一) 一. 实验目的 1. 熟悉和掌握利用 matlab 工具进行数字图像的读、写、显示、像素......

    数字图像处理-灰度变换 1 Displaying Gray-Level Information There are a number of useful Matlab functions for displaying the graylevel/color information of an......

    图像处理灰度变换实验_物理_自然科学_专业资料。一. 实验目的 1. 熟悉和掌握利用 matlab 工具进行数字图像的读、写、显示、像素处理等 数字图像处理的基本步骤和......

    Matlab二维灰度图象分析及变换处理_工学_高等教育_教育专区。Matlab 图像分析处理 变换 《基础强化训练》设计报告 题 目: 二维灰度图象的统计分析及变换处理 专业......

    实验名称: 图像灰度变换 二.实验目的:1 学会使用 Matlab; 实验目的: 2 学会用 Matlab 软件对图像灰度进行变换,感受各种 不同的灰度变换方法对最终图像效果的影响......

    更多相关内容
  • 图像的灰度线性变换是图像灰度变换的一种,图像的灰度变换通过建立灰度映射来调整源图像的灰度,从而达到图像增强的目的。灰度映射通常是用灰度变换曲线来进行表示。通常来说,它是将图像的像素值通过指定的线性函数...
  • matlab灰度变换源代码

    2019-04-24 23:41:46
    matlab灰度变换源代码,灰度变换是指根据某种目标条件按一定变换关系逐点改变源图像中每一个像素灰度值的方法。目的是为了改善画质,使图像的显示效果更加清晰。 图像的灰度变换处理是图像增强处理技术中的一种非常...
  • 里面包含了直方图、直方图均衡化、灰度变换、高斯噪声、椒盐噪声、去噪、二值化、中值滤波、自适应滤波、五种边缘检测算子(Canny、Roberts、Sobel、LoG、Prewitt)的源代码(包含.m文件),可以直接运行。
  • 使用python以及numpy通过直接操作图像数组完成一系列基本的图像处理 numpy简介: NumPy是一个非常有名的 Python 科学计算工具包,其中包含了大量有用的工具,比如数组对象(用来表示向量、矩阵、图像等)以及线性代数...
  • 1.从硬盘中读取一幅灰度图像; 2.显示图像信息,查看图像格式、大小、位深等内容; 3.用灰度面积法编写求图像直方图的Matlab程序,并画图; 4.把第3步的结果与直接用Matlab工具箱中函数histogram的结果进行比较...
  • matlab开发-灰度变换

    2019-08-23 15:38:12
    matlab开发-灰度变换。gray2rgb根据源图像的颜色将灰色图像转换为RGB
  • 上一个代码存在乱码,此资源为更新的内容。此代码用于从事图像处理的灰度变换研究的人员。首先从Photoshop保存自定义的灰度曲线,类型为*.acv。然后从MATLAB读取此文件,保存为*.bin的灰度曲线。
  • 此代码用于从事图像处理的灰度变换研究的人员。首先从Photoshop保存自定义的灰度曲线,类型为*.acv。然后从MATLAB读取此文件,保存为*.bin的灰度曲线。
  • (4)技术人员发现某些关键的信息只在灰度值为I1-I2的范围,因此,技术人员想保留I1-I2区间范围的图像,将其余灰度值显示为黑色。(5)将处理后的I1-I2范围内的图像,线性扩展到0-255灰度,以适应于液晶显示器的显示...
  • 图像的灰度变换.zip

    2021-05-07 18:44:03
    图像的灰度变换,线性变换,MATLAB程序,以及实验步骤
  • 灰度变换

    千次阅读 2020-04-26 19:13:33
    灰度变换 索引技术 MATLAB提供了大量的索引技术,下面罗列使用到的索引技术。1×N的数组被称为行向量。首先先写出一个举例向量v v=[2 3 5] v = 2 3 5 MATLAB中向量使用中括号括起,并用空格或逗号隔开。 转置算子 ...

    灰度变换

    索引技术

    MATLAB提供了大量的索引技术,下面罗列使用到的索引技术1×N的数组被称为行向量。首先先写出一个举例向量v

    v=[2 3 5]
    v =
         2     3     5
    

    MATLAB中向量使用中括号括起,并用空格逗号隔开。

    转置算子 ( .’ ) 可将向量转置

    w=V.'
    w =
         2
         3
         5
    

    对于单行的向量直接使用下标访问即可,跟其他编程语言并无区别

    w(2)
    ans =
    
         3
    

    元素块的索引

    元素块索引则跟Python类似,不过MATLAB中第一位元素从1开始算起,并不是0.

    >> v(2:end)
    
    ans =
    
         3     5
    

    还可以将一个向量用作索引进入圆括号内,在我们想得到不连续的元素时使用。

    >> v([1 3])
    
    ans =
    
         2     5
    

    MATLAB中一样有步长的计算,步长简单来说就是走了几步路

    >> V(1:2:end)
    
    ans =
    
         2     5
    

    矩阵索引

    矩阵因为是多维的所以索引需要一个行索引一个列索引。距离矩阵A

    >> A=[1 2 3;4 5 6;7 8 9]
    
    A =
    
         1     2     3
         4     5     6
         7     8     9
    

    行索引和列索引用逗号隔开,在各自的行和列中索引与上面一样用冒号

    >> A(2,2)//矩阵的第二行第二个
    
    ans =
    
         5
    -------------------------------------     
    >> A(2:3,1:end)//矩阵第二三行
    
    ans =
    
         4     5     6
         7     8     9
    

    灰度变换

    空间域技术是直接对图像的像素进行操作,灰度变换的空间域处理用下列表达式进行了概括

    g ( x , y ) = T [ f ( x , y ) ] g(x,y)=T[f(x,y)] g(x,y)=T[f(x,y)]

    其中 f ( x , y ) f(x,y) f(x,y)输入图像, g ( x , y ) g(x,y) g(x,y)输出图像,T则是算子。

    灰度变换函数

    算子T最简单的情况就是 1 ∗ 1 1*1 11领域的情况,这种情况下灰度变换函数只与该位置的灰度值有关,可表示为如下简单形式

    s = T ( r ) s=T(r) s=T(r)

    imadjust函数和stretchlim函数

    imadjust函数是灰度变换的基本函数

    g = imadjust(f,[low_in high_in],[low_out high_out],gamma)
    

    [low_in high_in],[low_out high_out]参数

    low_in以下的值会被截取为low_out,high_in以上的值会被截取为high_out,除了f和gamma,其他都应控制在[0,1]之间,matla会根据f的类型来进行相应的乘法。[]空矩阵等价于[0,1]。如果high_out<low_out,输出灰度将会反转。

    gamma参数

    gamma则指定了映射图像的曲线。如果省略gamma则默认为1.

    在这里插入图片描述

    使用下列例子说明,这是一幅数字乳房X射线图像\

    使用imadjust函数来增强它的效果,我们不感兴趣的区域大部分是黑色,这影响了我们的观察,因此通过灰度变换来改变图片的效果。右图为g1,左图为初始图f。

    >> g1=imadjust(f,[0 1],[1 0]);
    

    2.png (f) 3.png (g1)

    显而易见的改善了图像效果。这样的负片操作我们可以使用imcomplement函数实现

    >> g=imcomplement(f);
    

    疑惑

    stretchlim函数中所说的饱和度,是指颜色偏离本色的程度,这样的一个东西带入的imadjust函数中的输入参数中是怎么增加了对比度呢?其用意不太明白。

    对数及对比度扩展变换

    对数变换

    对数变换用下列表达式进行概括

    g = c ∗ l o g ( 1 + ( f ) ) g = c * log( 1 + (f) ) g=clog(1+(f))

    其中c是常数,f是浮点数。对数变换的一项主要作用是压缩动态范围,将超出硬件显示的动态范围进行压缩。

    对于被压缩值我们希望将其返回至全域。对于一个8比特图像来说。

    • 通过对数变换得到想要的g
    g = log(1 + double(f));
    
    • 首先通过mat2gray函数将图像矩阵值限定在[0,1]范围中。
    mat = mat2gray(g);  
    
    • 然后通过im2uint8再把值拉回至全域[0,255]。
    gs = im2uint8(mat2gray(mat));
    

    4.png(f)4.png (gs)

    对比度拉伸

    对比度函数可以将输入图像的窄范围扩展到输出图像的宽范围,可以用下列公式概括

    s = T ( r ) = 1 / 1 + ( m / r ) E s= T(r) = 1/1 + (m/r)^E s=T(r)=1/1+(m/r)E

    函数图像:6.png

    指定任意灰度变换

    如果有必要使用指定的变换函数变换一幅图片的灰度可用T列向量来表示映射结果,T(1)表示灰度值0的映射,T(2)表示灰度值1的映射,T(256)表示灰度值255的映射。简单的用法如下

    g = interp1(z,T,f)
    

    其中f是输入图像,g是输出图像,T是刚才说明的列向量,z是与T等长的列向量。z的形式如下

    z = linspace(0,1,numel(T))';
    

    1.插值函数interp1 2.linspace函数 3. numel(T)函数

    核心是用插值函数来进行插值,真正的变换函数其实在T里面。


    展开全文
  • 图片灰度变换

    2019-07-27 02:50:10
    NULL 博文链接:https://chenshuai365-163-com.iteye.com/blog/734725
  • MATLAB教学视频图像增强之灰度变换和直方图均衡匹配-MATLAB教学视频:空间域图像增强之灰度变换和直方图均衡匹配.zip MATLAB教学视频,数字图像处理类:本期视频时长约105分钟,通过大量的图片增强案例,从图像的...
  • 课程设计报告册 课程名称 MATLAB课程设计 课题名称 灰度变换增强 专业班级 姓 名 Bob Wang 学 号 15164 课程设计主要场所 信息楼220 时间 指导教师 成 绩 前言 数字图像处理技术是20世界60年代发展起来的一门新兴...
  • opencv 学习笔记(七) 灰度变换

    千次阅读 2022-03-29 07:47:41
    灰度变换一、灰度变换概念二、灰度变换的作用三、灰度变换的方法灰度化一、灰度的概念二、对彩色图进行灰度化1.加权平均值法2.取最大值3.平均值灰度的线性变换1.线性变换2.分段线性变换灰度的非线性变换1.对数变换2....


    一、灰度变换概念

    在图像预处理中,图像的灰度变换是图像增强的重要手段,灰度变换可以使图像对比度扩展,图像清晰,特征明显,灰度变换主要利用点运算来修正像素灰度,由输入像素点的灰度值确定相应输出点的灰度值,是一种基于图像变换的操作。

    二、灰度变换的作用

    1.改善图像是质量,显示更多的细节,提高图像的对比度
    2.有选择的突出图像感兴趣的特征或者抑制图像中不需要的特征
    3.可以有效的改变图像的直方图的分布,使像素的分布更加均匀

    三、灰度变换的方法

    1.线性灰度变换
    2.非线性灰度变换(对数变换,幂律变换(伽马变换))

    灰度化

    一、灰度的概念

    在数字图像中,像素是基本的表示单位,各个像素的亮安程度用灰度值来标识,只含亮度信息,不含色彩信息的图像称为灰度图像,对于单色图像,它的每个像素的灰度值用【0,255】区间的整数表示,即图像分为256个灰度等级,对于彩色图像,他的每个像素由R,G,B三个单色调配而成,如果每个像素的R,G,B完全相同,也就是R=G=B=D,该图像就是灰度图像,其中D被称为各个像素的灰度值。


    二、对彩色图进行灰度化

    1.加权平均值法

    D=0.299R+0.587G+0.114*B

    代码如下:

    #include<iostream>
    #include<opencv.hpp>
    using namespace std;
    using namespace cv;
    
    
    int main()
    {
    	Mat img, img2;
    	img = imread("猫1.jpg");
    	imshow("原图", img);
    	img2.create(img.size(), 0);
    	for (int i = 0; i < img.rows; i++)
    	{
    		for (int j = 0; j < img.cols; j++)
    		{
    			img2.at<uchar>(i, j) = saturate_cast<uchar>(0.114*img.at<Vec3b>(i, j)[0] + 0.587*img.at<Vec3b>(i, j)[1] + 0.299*img.at<Vec3b>(i, j)[2]);
    		}
    	}
    	imshow("经验公式", img2);
    	waitKey(0);
    }
    

    效果如下:
    在这里插入图片描述

    2.取最大值

    代码如下:

    int main()
    {
    	Mat img, img2;
    	img = imread("猫1.jpg");
    	imshow("原图", img);
    	img2.create(img.size(), 0);
    	for (int i = 0; i < img.rows; i++)
    	{
    		for (int j = 0; j < img.cols; j++)
    		{
    			int max = img.at<Vec3b>(i, j)[0];
    			for (int x = 0; x < 3; x++)
    			{
    				if (max < img.at<Vec3b>(i, j)[x])
    				{
    					max = img.at<Vec3b>(i, j)[x];
    				}
    			}
    
    			img2.at<uchar>(i, j) = saturate_cast<uchar>(max);
    		}
    	}
    	imshow("最大值", img2);
    	waitKey(0);
    }
    

    3.平均值

    代码如下:

    int main()
    {
    	Mat img, img2;
    	img = imread("猫1.jpg");
    	imshow("原图", img);
    	img2.create(img.size(), 0);
    	for (int i = 0; i < img.rows; i++)
    	{
    		for (int j = 0; j < img.cols; j++)
    		{
    			img2.at<uchar>(i, j) = saturate_cast<uchar>((img.at<Vec3b>(i, j)[0] + img.at<Vec3b>(i, j)[1] + img.at<Vec3b>(i, j)[2])/3);
    		}
    	}
    	imshow("平均值", img2);
    	waitKey(0);
    }
    

    灰度的线性变换

    图像的线性变换是图像处理的基本运算,通常应用在调整图像的画面质量方面,如图像对比度,亮度及反转等操作。灰度的线性变换就是将图像中所有点的灰度按照线性灰度变换函数进行变换。

    1.线性变换

    y=kx+b;

    代码如下:

    int main()
    {
    
    	Mat img1, img2;
    	img1 = imread("猫1.jpg", 1);
    	imshow("原图", img1);
    	img2 = Mat::zeros(img1.size(), 0);
    	for (int i = 0; i < img1.rows; i++)
    	{
    		for (int j = 0; j < img1.cols; j++)
    		{
    			for (int s = 0; s < 3; s++)
    			{
    				img2.at<uchar>(i, j) = saturate_cast<uchar>(1.1*img1.at<Vec3b>(i, j)[s] + 20);
    			}
    		}
    	}
    	imshow("线性", img2);
    	waitKey(0);
    }
    

    效果如下:
    在这里插入图片描述

    2.分段线性变换

    请添加图片描述
    代码如下:

    int main()
    {
    
    	Mat img1, img2;
    	img1 = imread("猫1.jpg", 0);
    	imshow("原图", img1);
    	img2 = Mat::zeros(img1.size(), 0);
    	for (int i = 0; i < img1.rows; i++)
    	{
    		for (int j = 0; j < img1.cols; j++)
    		{
    			
    			uchar temp = img1.at<uchar>(i, j);
    			if (temp <=70)
    			{
    				img2.at<uchar>(i, j) = saturate_cast<uchar>(0.5*temp + 20);
    			}
    			else if (temp > 70 && temp <= 150)
    			{
    				img2.at<uchar>(i, j) = saturate_cast<uchar>(1.2*temp + 100);
    			}
    			else if (temp > 150 && temp <= 255)
    			{
    				img2.at<uchar>(i, j) = saturate_cast<uchar>(0.9*temp + 55);
    			}
    		}
    	}
    	imshow("分段线性", img2);
    	waitKey(0);
    }
    

    效果如下:
    在这里插入图片描述

    灰度的非线性变换

    对数变换和分对数变换都属于非线性变换

    1.对数变换

    对数变换能增强图像暗部的细节

    代码如下:

    int main()
    {
    	double c = 1.2;
    	Mat img1, img2, img3;
    	img1 = imread("猫1.jpg",0);
    
    	img3 = Mat::ones(img1.size(), CV_32FC3);
    	add(img1, Scalar(1.0), img1);
    	img1.convertTo(img1, CV_32F);
    	log(img1, img3);
    	img3 = c*img3;
    
    
    	normalize(img3, img3, 0, 255, NORM_MINMAX);//归一化到0-255 NORM_MINMAX 线性归一化
    	convertScaleAbs(img3, img3);//转换成8bit通道显示
    	imshow("对数变换", img3);
    	waitKey(0);
    }
    

    效果如下:
    在这里插入图片描述

    2.幂律变换

    幂律变换也称伽马变换或指数变换,主要用于图像的校正,对漂白的图片或过黑的图片进行修正,增强对比度

    代码如下:

    int main()
    {
    	Mat img1, img2;
    	img1 = imread("猫1.jpg",0);
    	img2.create(img1.size(), img1.type());
    	for (int i = 0; i < img1.rows; i++)
    	{
    		for (int j = 0; j < img1.cols; j++)
    		{
    			int gray = img1.at<uchar>(i, j);
    			img2.at<uchar>(i, j) = saturate_cast<uchar>(pow(gray,0.5));
    		}
    	}
    	normalize(img2, img2, 0, 255, NORM_MINMAX);
    	imshow("幂律变换", img2);
    	waitKey(0);
    }
    

    效果如下:
    在这里插入图片描述

    总结

    以上就是本文的全部内容,本文简单介绍了灰度化以及灰度变换的一些基础知识。

    展开全文
  • 1 灰度变换简介 2 线性灰度变换­—图像反转 3 非线性灰度变换 3.1 对数变换 3.2 伽马变换 参考资料 1 灰度变换简介 灰度变换是图像增强的一种重要手段,用于改善图像显示效果,属于空间域处理方法,它可以使...

    目录

    1 灰度变换简介

    2 线性灰度变换­—图像反转

    3 非线性灰度变换

    3.1 对数变换

    3.2 伽马变换

    参考资料


    1 灰度变换简介

    灰度变换是图像增强的一种重要手段,用于改善图像显示效果,属于空间域处理方法,它可以使图像动态范围加大,使图像对比度扩展,图像更加清晰,特征更加明显。灰度变换其实质就是按一定的规则修改图像每一个像素的灰度,从而改变图像的灰度范围。常见的灰度变换图像反转,对数变换和伽马变换等。其具体分类如下图所示:

     


     

    2 线性灰度变换­—图像反转

    灰度线性变换最常见的就是图像反转,在灰度图像灰度级范围[0,L-1]中,其反转的公式如下所示:

                                                                                            s=L-1-r

    其中,r表示原始图像的灰度级,s表示变换后的灰度级。

     

    下图所示为图像反转的例子,原图像是数字乳房X射线照片,其中显示有一小块病变,通过图像反转就很容易看到病变区域。

     

    代码如下所示:

    # -*- coding: utf-8 -*-
    import cv2
    import numpy as np
    import matplotlib.pyplot as plt
    
    #读取原始图像
    img = cv2.imread('zxp.jpg')
    
    #图像灰度转换
    grayImage = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    
    #获取图像高度和宽度
    height = grayImage.shape[0]
    width = grayImage.shape[1]
    
    #创建一幅图像
    result = np.zeros((height, width), np.uint8)
    
    #图像灰度反色变换 s=255-r
    for i in range(height):
        for j in range(width):
            gray = 255 - grayImage[i,j]
            result[i,j] = np.uint8(gray)
    
    #显示图像
    
    cv2.imshow("Gray Image", grayImage)
    cv2.imshow("Result", result)
    
    
    #等待显示
    cv2.waitKey(0)
    cv2.destroyAllWindows()

     

    运行结果如下图所示:

     


     

    3 非线性灰度变换

    3.1 对数变换

    图像灰度对数变换一般表示如下所示:

                                                                                        s=c\log (1+r)

    其中,r表示原始图像的灰度级,s表示变换后的灰度级,c为常数。

    假设r\ge 0,下图所示的对数曲线的形状表明,改变换将输入中范围较窄的低灰度值映射为输出中较宽范围的灰度值。相反的,对高的输入灰度值也是如此。我们使用这种类型的变换来扩展图像中暗像素的值,同时压缩更高灰度级的值。反对数变换的作用与此相反。

     

    代码如下所示:

    # -*- coding: utf-8 -*-
    import numpy as np
    import matplotlib.pyplot as plt
    import cv2
    
    #绘制曲线
    def log_plot(c):
        x = np.arange(0, 256, 0.01)
        y = c * np.log(1 + x)
        plt.plot(x, y, 'r', linewidth=1)
        plt.rcParams['font.sans-serif']=['SimHei'] #正常显示中文标签
        plt.title(u'对数变换函数')
        plt.xlim(0, 255), plt.ylim(0, 255)
        plt.show()
    
    #对数变换
    def log(c, img):
        output = c * np.log(1.0 + img)
        output = np.uint8(output + 0.5)
        return output
    
    #读取原始图像
    img = cv2.imread('test8.bmp')
    
    #绘制对数变换曲线
    log_plot(42)
    
    #图像灰度对数变换
    output = log(42, img)
    
    #显示图像
    cv2.imshow('Input', img)
    cv2.imshow('Output', output)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

     

    运行结果如下图所示:

     

     


     

    3.2 伽马变换

    伽玛变换又称为 指数变换 或 幂次变换,是另一种常用的灰度非线性变换。图像灰度的伽玛变换一般表示如下所示:

                                                                                                 s=c{​{r}^{\gamma }}

    其中,r表示原始图像的灰度级,s表示变换后的灰度级,c\gamma正常数

    1)当\gamma>1时,会拉伸图像中灰度级较高的区域,压缩灰度级较低的部分;

    2)当\gamma<1时,会拉伸图像中灰度级较低的区域,压缩灰度级较高的部分;

    3)当\gamma=1时,该灰度变换是线性的,此时通过线性方式改变原图像。

    如下图所示,不同\gamma值的变换曲线:

     

    下图所示为图像伽马变换的例子:

     

     

    代码如下所示:

    # -*- coding: utf-8 -*-
    import numpy as np
    import matplotlib.pyplot as plt
    import cv2
    
    #绘制曲线
    def gamma_plot(c, v):
        x = np.arange(0, 256, 0.01)
        y = c*x**v
        plt.plot(x, y, 'r', linewidth=1)
        plt.rcParams['font.sans-serif']=['SimHei'] #正常显示中文标签
        plt.title(u'伽马变换函数')
        plt.xlim([0, 255]), plt.ylim([0, 255])
        plt.show()
    
    #伽玛变换
    def gamma(img, c, v):
        lut = np.zeros(256, dtype=np.float32)
        for i in range(256):
            lut[i] = c * i ** v
        output_img = cv2.LUT(img, lut) #像素灰度值的映射
        output_img = np.uint8(output_img+0.5)
        return output_img
    
    #读取原始图像
    img = cv2.imread('test9.bmp')
    
    #绘制伽玛变换曲线
    gamma_plot(0.00000005, 4.0)
    
    #图像灰度伽玛变换
    output = gamma(img, 0.00000005, 4.0)
    
    #显示图像
    cv2.imshow('Imput', img)
    cv2.imshow('Output', output)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

     

    运行结果如下图所示:

     


     

    参考资料

    [1] https://blog.csdn.net/Eastmount/article/details/88858696

    [2] https://blog.csdn.net/Eastmount/article/details/88929290

    [3] 冈萨雷斯. 数字图像处理(第三版) 

    展开全文
  • 使用python实现灰度变换

    千次阅读 2022-05-06 21:47:01
    由于最近临近期末,老师留了几个题目,并且兴趣使然,选择学习一下使用python... 图像的灰度变换处理是图像增强处理技术中的一种非常基础、直接的空间域图像处理方法,也是图像数字化软件和图像显示软件的一个重要组
  • matlab灰度变换函数

    2021-04-18 16:00:22
    概况:灰度变换通过对原图像素值重新分配实现, 目的是使图像中表现较暗的像素值, 通过灰度变换函数映射的方法使较暗的像素值增大, 这样图像的亮度就提高了。增强处理并不能使原始图像信息增加, 其结果只能增强对某种...
  • 图像增强中灰度变换方法研究,尹露,,图像增强不仅可以用于提高图像的视觉外观,而且还是图像边缘检测以及特征提取等技术的基础。此文主要研究用于图像增强的灰度变换
  • 图像灰度变换

    2021-10-25 18:34:05
    灰度变换是指根据某种目标条件按一定变换关系逐点改变源图像中每一个像素灰度值的方法。目的是为了改善画质,使图像的显示效果更加清晰。 图像的灰度变换处理是图像增强处理技术中的一种非常基础、直接的空间域图像...
  • 冈萨雷斯图像处理MATLAB灰度变换,包含log变换,imjust变换,对比度拉升变换,指定任意灰度变换
  • 灰度变换(1)线性变换(2)分段线性变换(3)非线性灰度变换2.直方图修正法(1)直方图均衡化(2)直方图规定化图像增强图像增强的目的:(1)利用一系列技术改善图像的视觉效果,提高图像清晰度。(2)将图像转换为一种更适合人...
  • 详细的介绍了图像的灰度变换以及代数运算,几何运算
  • 图像处理——图像灰度变换

    千次阅读 2021-08-03 13:44:31
    点运算又称为对比度增强、对比度拉伸或灰度变换,是一种通过图像中的每一个像素值(即像素点上的灰度值)进行运算的图像处理方式。它将输入图像映射为输出图像,输出图像每个像素点的灰度值仅由对应的输入像素点的...
  • MATLAB灰度变换

    万次阅读 多人点赞 2020-04-01 20:32:32
    图像的灰度变换处理是图像增强处理技术的一种非常基础的空间域处理方法。灰度变换主要针对独立的像素点进行处理,通过改变原始图像数据所占据的灰度范围而使图像在视觉上得到良好的改变。 灰度变换函数 imadjust函数...
  • 图像处理之灰度变换

    千次阅读 2022-04-02 12:51:40
    灰度变换空间域增强空间域增强的特点线性变换分段线性变换非线性变换 空间域增强 直接对构成图像的像素的灰度级的操作 输入图像 x(j,i)−−−>y(j,i)x(j, i)---> y(j, i)x(j,i)−−−>y(j,i) y(j,i)=T[x(j,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 52,470
精华内容 20,988
关键字:

灰度变换