精华内容
下载资源
问答
  • 对数与对比度拉伸变换是进行动态范围处理的基本工具 对数变换的表达式:g = c*log(1+f),主要应用压缩动态范围 其中c是一个常数,f是浮点数, 图像类似: gamma曲线的形状可变,但是对数形状是固定的 当执行...

    对数与对比度拉伸变换是进行动态范围处理的基本工具

    一、对数变换

    对数变换的表达式g = c*log(1+f),主要应用压缩动态范围
    其中 c 是一个常数,f 是浮点数,
    图像类似:
    在这里插入图片描述
    gamma 曲线的形状可变,但是对数形状是固定的

    当执行一个对数变换时,通常期望将导致的压缩值还原为显示的全范围

    % 例如对于8比特而言
    gs = im2uint8(mat2gray(g))
    展开全文
  • 在数字图像中,空域中的对比度拉伸增强变换。用matlab编写的程序。
  • 冈萨雷斯图像处理笔记——对比度拉伸(线性变换函数) (事先声明:文章本意只是作为自己的笔记,初学者代码粗糙不规范,欢迎大家指出错误。) 本篇文章内容针对冈萨雷斯图像处理第三版P69中内容 如下图: 低对比度...

    冈萨雷斯图像处理笔记——对比度拉伸(线性变换函数)

    (事先声明:文章本意只是作为自己的笔记,初学者代码粗糙不规范,欢迎大家指出错误。)

    本篇文章内容针对冈萨雷斯图像处理第三版P69中内容

    如下图:
    本文的效果是达到从图(b)到图(d)
     

      低对比度的图像由照明不足、成像传感器动态范围太小、图像获取过程中镜头光圈设置错误引起。对比度拉伸是扩展图像灰度级动态范围的处理,因此可以跨越记录介质和显示装置的全部灰度范围。
     

      图3.10(a)显示了一个用于对比度拉伸的典型变换。点(r1,s1)和点(r2,s2)的位置控制变换函数的形状。若r1=s1且r2=s2,则变换为一线性函数,产生没有变化的灰度级。若r1=r2,s1=0且s2=L-1,则变换变为阈值处理函数,产生一幅二值图像。
     

      一般情况下,假设r1<=r2且s1<=s2,函数是单值的且单调递增的。这一条件保持了灰度级的次序,从而避免了在处理后的图像中产生认为的灰度错误。

     

      图3.10(b)显示了一幅8比特低对比度图像。图3.10©显示了对比拉伸后的效果,得到该效果的参数设置如下:(r1,s1)=(rmin,0)且(r2,s2)=(rmax,L-1),其中rmin和rmax分别为图像中的最小灰度级和最大灰度级。因此,变换函数把灰度级由原范围线性地拉伸到整个范围[0,L-1]。
     

      图3.10(d)显示了前面定义的(r1,s1)=(m,0)和(r2,s2)=(m,L-1)的阈值处理函数后的结果,其中,m是图像的平均灰度级。
     

    废话不多说了,直接上代码了(这里只做了从图b到图c的转换,同理能进行图b到图d的转换)

    Mat Contrast_ratio(Mat Image)//拉伸图像对比度
    {
    	Mat dstImage = Mat::zeros(Image.size(), Image.type());
    
    	int min = 255; int max = 0;
    	for (int i = 0; i < Image.rows; i++)
    	{
    		for (int j = 0; j < Image.cols; j++)
    		{
    
    			if (Image.at<uchar>(i, j) < min)
    			{
    				min = Image.at<uchar>(i, j);
    			}
    			if (Image.at<uchar>(i, j) > max)
    			{
    				max = Image.at<uchar>(i, j);
    			}
    		}
    	}
    
    	//Y=aX+b  X为输入灰度值,Y为输出灰度值,a,b为对比度拉伸函数的系数。
    	double a = 255 / (max - min);
    	double b = -(a * min);
    	double result;
    
    	for (int i = 0; i < Image.rows; i++)
    	{
    		for (int j = 0; j < Image.cols; j++)
    		{
    			result = Image.at<uchar>(i, j) * a + b;
    			if (result > 255)
    			{
    				result = 255;
    			}
    			dstImage.at<uchar>(i, j) = result;
    		}
    	}
    
    	return dstImage;
    }
    

     
    主函数部分:

    int main(void)
    {
    	Mat Image = imread("D://数字图像处理/第3章图像/picture1.jpg", 0);//读入图片
    	imshow("Image", Image);//显示原图
    	
    	Mat dstImage = Contrast_ratio(Image);//输出的图片
    	imshow("dstImage", dstImage);//显示处理后的图片
    
    	waitKey();
    
    	return 0;
    }
    

     

    处理后的结果:
    对比度变换前后
    可以看出得到的图像基本符合预期效果,图像清晰度肉眼可见提升。
     

      总结:对比度拉伸的原理简单来说就是把比较窄的灰度级范围,扩展到整个灰度范围上,让明暗更加分明。对于本篇中来说,就是把rmin变为0,rmax变为255,其余的也进行相应线性变化。

    展开全文
  • 对数及对比度拉伸变换

    千次阅读 2016-08-04 20:17:28
    对数及对比度拉伸变换 对数和对比度拉伸变换是:动态范围操作的基本工具 表达式:g=c*log(1+f),其中c是一个常数,f是浮点数 对数变换:  应用:压缩动态范围(实现了图像灰度扩展和压缩...
     
    


    对数及对比度拉伸变换



    对数和对比度拉伸变换是:动态范围操作的基本工具

    表达式:g=c*log(1+f),其中c是一个常数,f是浮点数

    对数变换:
                   应用:压缩动态范围(实现了图像灰度扩展和压缩功能,扩展低灰度值而压缩高灰度值,让图像的灰度分布更加符合人的视觉特性)(灰度值0(黑)~255(白))
                             可以利用这种变换来扩展被压缩的高值图像中的暗像素
         
                   mat2gray(f):会将压缩值限定在【0,1】范围

                   im2uint8( mat2gray(f) ):会将值限定在【0,255】范围

    对比度拉伸变换函数:把窄的输入灰度级扩展为宽的范围的输出灰度级,结果是一幅高对比度的图像
                      表达式:                  1
                                s=T(r)=   - - - - - - -     ,
                                              1+(m/r)^E
                                其中r为输入图像的灰度,s是输出图像中的相应灰度值,E用于控制该函数的斜率

    阈值化/阈值处理函数:用于图像分割的简单工具


     
    展开全文
  • 运用本函数,可以使图像的对比度拉伸,效果比直接使用imadjust,此函数是冈萨雷斯 数字图像处理 上面的 运用本函数,可以使图像的对比度拉伸,效果比直接使用imadjust,此函数是冈萨雷斯 数字图像处理 上面的
  • 对比度拉伸是扩展图像灰度级动态范围的处理。通过在灰度级中确定两个点来控制变换函数的形状。下面是对比度拉伸函数中阈值处理的代码示例,阈值为平均值。 2. 测试结果 图源自skimage 3. 代码 1 def ...

    1. 基本原理

    对比度拉伸是扩展图像灰度级动态范围的处理。通过在灰度级中确定两个点来控制变换函数的形状。下面是对比度拉伸函数中阈值处理的代码示例,阈值为平均值。

    2. 测试结果

    图源自skimage

    3. 代码

     1 def contrast_stretch(input_image):
     2     '''
     3     对比度拉伸(此实现为阈值处理,阈值为均值)
     4     :param input_image: 输入图像
     5     :return: 对比图拉伸后的图像
     6     '''
     7     input_image_cp = np.copy(input_image) # 输入图像的副本
     8 
     9     pixels_value_mean = np.mean(input_image_cp) # 输入图像的平均灰度值
    10 
    11     # 对比图拉伸(注:该实现顺序不能颠倒)
    12     input_image_cp[np.where(input_image_cp <= pixels_value_mean)] = 0
    13     input_image_cp[np.where(input_image_cp > pixels_value_mean)] = 1
    14 
    15     output_image = input_image_cp
    16 
    17     return output_image

     

    转载于:https://www.cnblogs.com/iwuqing/p/11297259.html

    展开全文
  • Matlab——对比度拉伸

    万次阅读 2018-07-31 22:20:25
    1、代码如下: close all;clear all;clc; %关闭所有图形窗口,清除工作空间所有变量,清空命令行 I=imread('pout.tif'); J=imadjust(I,[0.2 0.5],[0 1]);%将0.2-0.5之间的灰度扩展到整个0-1范围,这种处理 对于...
  • 对比度拉伸变换对图像进行对比度拉伸变换,压缩动态范围,将我们所关注的边界特征信息详细化,从而使得输出图像亮区域更亮,暗区域更暗,提高了图像的对比度。 opencv中的 LUT函数(look up table)为查表函数, ...
  • 一、将一幅图像转化为二值图像,可以使用如下函数: BW = im2bw(I, level) %输出像素点小于level的像素,I是代表图像的变量,level是阈值,level属于[0 1]. BW = im2bw(RGB, level)%将RGB彩色图像转换为二值图像,...
  • 点运算又称为对比度增强、对比度拉伸或灰度变换,是一种通过图像中的每一个像素值进行运算的图像处理方式。。它将输入图像映射为输出图像,输出图像每个像素点的灰度值仅有对应的输入像素点的灰度值决定,运算结果...
  • 数字图像处理实验之对比度拉伸

    千次阅读 2019-07-17 15:38:42
    书本中(冈萨雷斯:数字图像处理第三版P69)的对比度拉伸变换函数图是这样的: 图3.10(b)低对比度拉伸图中,最低灰度级为91,最高灰度级为138,并且要将灰度值拉伸至[0, 255]。阈值处理的函数的图像即为P64图3.2...
  • 通过min()函数以及max()函数分别求出处理前原图像的灰度级最小值与最大值; 对原图像进行归一化处理,即用【图像矩阵元素-处理前灰度级最小值】除以【处理前灰度级最大值-处理前灰度级最小值】; 将图像灰度级放缩至...
  • 使用给出的六种函数图像来实现对比度拉伸变换;(上机) (2).根据课上讲的方法实现对比度增强;(上机) (3).怎么描述两个直方图是否相似?(简答) 2.实验结果: (1) (2) 3.结果分析:(代码见附录) (1) 第一幅图...
  • 图像增强之对比度拉伸

    万次阅读 多人点赞 2018-03-24 13:39:59
    对比度拉伸是图像增强的一种方法,也属于灰度变换操作。我们看如下图像: 可以看到,这张图片非常灰暗。我们查看下其直方图。 import cv2 import matplotlib.pyplot as plt farina = cv2.imread(...
  • //图像对比度拉伸。 //(r1,s1)灰度平面上的第一个点 //(r2,s2)灰度平面上的第二个点 */ Mat Stretch(Mat input, int r1, int s1, int r2, int s2); //获取图片灰度值最大值与最小值 int RmimRmax(Mat input, int ...
  • 目录分段线性变换对比度拉伸最大最小值拉伸 分段线性变换 优点 形式可以任意复杂 缺点 要求用户输入很多参数 对比度拉伸 光照不足、成像传感器的动态范围偏小、图像获取过程中镜头孔径的设置错误 点(r1,s1...
  • 对比度拉伸

    2021-08-30 14:12:09
    对比度拉伸根据(r1,s1) (r2,s2)两点的位置决定了三段函数的形状,也就决定了对输入像素的不同处理.可将暗区域的像素进行修改,拉伸,变换.提高对比度. 图片来自数字图像处理冈萨雷斯第三版
  • OpenCV学习笔记(一)对比度拉伸

    万次阅读 2016-12-06 14:27:42
    最简单的就是对比度拉伸。  对比度拉伸技术是通过扩展图像灰度级动态范围来实现的,它可以扩展对应的全部灰度范围。提高图像的对比度可以增强图像各个区域的对比效果,对图像感兴趣的部分进行增强,而对图像不感...
  • imadjust使用语法如下: J = imadjust(I,[low_in high_in],[low_out high_out],gamma) ...1时,变换函数是一个凸函数。当gamma<1时,变换函数是一个凹函数。 imadjust的使用方法,我们直接用一个脚本来示例。 I
  • OpenCV图像增强之对比度拉伸 C++

    千次阅读 2019-02-19 17:51:22
    下图是典型的对比度拉伸变换。点(r1,s1)和(r2,s2)的位置控制变换函数的形状。 如果r1=r2,s1=s2,则变换为一线性函数; 若r1=r2,s1=0且s2=L-1,则是阈值处理函数,产生一幅二值图像; 处理一幅8bit低对比度图像,(r1,...
  • 对比度拉伸,对应输入像素和输出像素灰度值变换如下。 就是我们数学当中的分段函数。这个用C++实现起来需要注意的事情就是不要让被除数为0,被除数为0的情况不用算斜率,因为根本用不到。依旧沿用了上一章所说的...
  • 1、在最后的代码里,图像反转,对数变换方法1,对比度拉伸,比特平面分层的实现均采用指针访问像素的方式,以前总是用Opencv的at模板,但是指针最为高效,我还是用一下指针吧。当然,还有迭代器访问的方式,也是最为...
  • imadjust函数在数字图像...将灰度图像 I 中的亮度值映射到 J 中的新值并使 1% 的数据是在低高强度和饱和,这增加了输出图像 J 的对比度值。此用法相当于 imadjust(I,stretchlim(I)) J = imadjust(I,[low_in; hig
  • 空间域指图像平面本身,这类图像... 图像增强常用的三类基本函数:线性函数(反转和恒等变换)、对数函数(对数和反对数函数)和幂率函数(n次幂和n次根变换),如图1所示。r表示输入灰度级,s表示输出灰度级 ...
  • 图像的灰度变换——图像旋转 图像的反色处理 对比度拉伸

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,316
精华内容 1,326
关键字:

对比度拉伸变换函数