精华内容
下载资源
问答
  • 对比度强
    千次阅读
    2021-05-23 14:38:19

    imadjust使用语法如下:

    J = imadjust(I,[low_in high_in],[low_out high_out],gamma)

    该函数的作用是把原始图像中的小于low_in的像素值映射到low_out。把大于high_in的像素值映射到high_out。

    gamma是其他像素点的映射参数。当gamma=1时,表示线性变换。当gamma>1时,变换函数是一个凸函数,会增强暗色输出。当gamma<1时,变换函数是一个凹函数,会增强亮知值输出。

    imadjust的使用方法,我们直接用一个脚本来示例。

    I = imread('../picture/bule_sky.jpg');
    % M=stretchlim(I);
    J1 = imadjust(I,[0.1 1],[]);
    J2 = imadjust(I,[0.3 1],[]);
    J3 = imadjust(I,[0.5 1],[]);
    subplot(2,3,1);
    imshow(J1);
    subplot(2,3,2);
    imshow(J2);
    subplot(2,3,3);
    imshow(J3);
    J4 = imadjust(I,[0 0.5],[]);
    J5 = imadjust(I,[0 0.7],[]);
    J6 = imadjust(I,[0 0.9],[]);
    subplot(2,3,4);
    imshow(J4);
    subplot(2,3,5);
    imshow(J5);
    subplot(2,3,6);
    imshow(J6);

    通过这脚本我们可以看到:

    1.J1,J2和J3中图像的对比度逐步变小。这是因为in_low越来越大,那么越来越多小于in_low的像素值被映射成一个值,对比度当然越来越高。

    2.J4,J5和J6中图像的对比度会越来越小。因为in_high越来越大,那么越来越多大于in_high的像素值被映射一个值,对比度当然越来越高。

    问题,我们怎么调节参数使图片的对比度越来越高呢?

    1.把in_low拉到较小的out_low的位置。把in_hight拉到较高的out_hight位置。

    2.增大gamma值。

     

    更多相关内容
  • 图像对比度增强

    千次阅读 2021-12-13 16:04:10
    直方图均衡算法 (拉伸对比度) 直方图均衡化过程中,映射方法是 L是灰度级总数(如256),k是当前灰度级,n是像素总数,s是累积概率 假设有如下图像: 得图像的统计信息如下图所示,并根据统计信息完成灰度...

    直方图均衡算法 (拉伸对比度)

    直方图均衡化过程中,映射方法是
     
    L是灰度级总数(如256),k是当前灰度级,n是像素总数,s是累积概率

     

    假设有如下图像:

     

    得图像的统计信息如下图所示,并根据统计信息完成灰度值映射:
     
    函数映射后的灰度值:255*累积概率,如255*0.25=63.75

     

    映射后的图像如下所示:
     
    https://blog.csdn.net/chy19911123/article/details/47451209

     

    1. 图像的灰度级:一幅灰度图像的像素的强度值的取值范围表示为[0, L-1]。如8位色的灰度级,由于是2进制,灰度有256个等级,从黑(0)到白(255)。 
    2. 图像的动态范围:统计一下每一点的像素灰度值,灰度级的最小和最大这一范围,便是该图像的动态范围。动态范围越大(灰度直方图越宽),那它的对比度就会越高,当然看着越清楚。
    https://blog.csdn.net/m0_37644085/article/details/77503609

    图像增强算法(含个人随笔链接)
    https://www.cnblogs.com/Imageshop/category/535367.html

    通常从两个方面实现图像增强,一是对比度拉伸处理,二是细节保持与再现。通常会需要对退化图像进行对比度和细节两方面的增强处理。
    图像增强技术按其变换处理所在的作用域不同而被分为空域增强法和频域增强法两大类。
    http://www.voidcn.com/article/p-mwwalllt-bpw.html

    CLAHE解读

    限制对比度自适应直方图均衡(Contrast Limited Adaptive Histogram Equalization,CLAHE)

    自适应直方图均衡(AHE)算法,对于图像中存在明显比其他区域亮或者暗的地方时,普通的直方图均衡算法就不能将该处的细节信息描述出来。AHE算法通过在当前处理像素周边的一个矩形区域内进行直方图均衡,来达到扩大局部对比度,显示平滑区域细节的作用。
       AHE算法的2个属性:1、AHE算法处理的局部领域,矩形领域小,局部对比度强,矩形领域大,局部对比度弱。2、如果矩形区域内的图像块信息比较平坦,灰度接近,其灰度直方图呈尖状,在直方图均衡的过程中就可能会出现过度放大噪声的情况。

       CLAHE,对比度受限的自适应直方图均衡算法就能够有效的限制噪声放大的情形。下图表示的就是局部矩形领域内的灰度直方图,由于对比度放大的程度与像素点的概率分布直方图的曲线斜度成比例,所以为了限制对比度,将大于一定阈值的部分平均分配到直方图的其他地方,如下图所示,这样的话,通过限制CDF(累积分布函数)的斜率来一定程度限制对比度。

     

    插值过程,得到了CDF函数,也就获得了对应的亮度变换函数,在计算变换函数的时候可以通过插值过程来降低计算量。其中红色块(图像角点处)的变换函数是完全按照定义获得的,绿色块(图像边缘)的变换函数是通过旁边两个图像块的变换函数线性插值得到的,蓝色部分图像块的变换函数则是通过双线性插值得到。

     

    Matlab和OpenCV中都已经集成了CLAHE函数,在Matlab中,就是函数J = adapthisteq(I);

    全局映射算子
    每一个像素点将会根据它的全图特征和亮度信息进行映射,不管其空间位置几何。全局算子一个比较典型的例子就是色调曲线(tone mapping curve)。
    导致图像色调映射过后看起来很平坦,失去了其局部的细节信息。

    局部映射算子
    像素点所在的空间位置会被考虑,具有相同亮度值的两个像素点会被映射成不同的值,因为它们的空间位置周边的亮度信息可能不一样。
    局部色调映射会很好的保护高亮和阴影部分的局部对比度和细节信息。
    https://www.cnblogs.com/whw19818/p/5766005.html

     算法主要分以下三部:
     1.图像分块,以块为单位,先计算直方图,然后修剪直方图,最后均衡;

     

     2.块间线性插值,这里需要遍历、操作各个图像块,处理起来复杂一些;

     

    3.与原图做图层滤色混合操作:f(a, b) = 1 - (1 - a)*(1 - b)。
    https://blog.csdn.net/grafx/article/details/53311915
     

    matlab图像拼接融合
    https://blog.csdn.net/juebai123/article/details/79671790

    双线性插值
    通过双线性插值可以基本消除块状效应
    对于彩色图像,三通处理分开处理会导致严重的偏色,故我们可以将其进行颜色空间转换(如RGB转为HSV),然后仅对亮度分量处理,再反变换回RGB空间。不过网上有高手将R、G、B统一处理
    https://blog.csdn.net/u010839382/article/details/49584181

    直方图

    平均值:其中显示图像亮度的平均值.(亮度)
    中值:显示象素颜色值的中点值.(饱和度)

    色调从0~255,
    0为黑色,255为白色.128为灰色.
    0~85为暗部,86~170为中间调,171~255为高光区
    http://www.jcwcn.com/article-3138-1.html

    展开全文
  • 图像对比度设置matlab

    2018-03-12 10:39:19
    使用matlab对图像进行对比度调节,图像增强和复原的目的是为了提高图像的质量,如去除噪声,提高图像的清晰度等。图像增强不考虑图像降质的原因,突出图像中所感兴趣的部分。如强化图像高频分量,可使图像中物体轮廓...
  • premiere pr 自动调色对比度 用法

    千次阅读 2021-05-31 09:48:21
    1.在一个空PR项目中创建一个合适大小的序列,然后导入视频,并把视频放到序列时间轴轨道中使用。...5.选中自动对比度视频效果按住鼠标左键不松将其拖动到调整图层上,PR会自动进行对比度处理,我们细心观察可以看到视频

    1.在一个空PR项目中创建一个合适大小的序列,然后导入视频,并把视频放到序列时间轴轨道中使用。

    PR懒人调色之自动对比度的用法

    2.单击菜单栏上的文件菜单,展开文件菜单栏,选择文件中的新建选项,选择新建调整图层。

    PR懒人调色之自动对比度的用法

    3.选择调整图层,将其应用到视频轨道的上面一个轨道,将多余的调整图层Ctrl+K剪断,将后面多余的删除。

    PR懒人调色之自动对比度的用法

    4.打开PR效果,在效果中搜索自动,就可以看到自动调色命令,选择自动对比度视频效果。

    PR懒人调色之自动对比度的用法

    5.选中自动对比度视频效果按住鼠标左键不松将其拖动到调整图层上,PR会自动进行对比度处理,我们细心观察可以看到视频画面的对比度发生了变化。

    PR懒人调色之自动对比度的用法

    6.如果你对PR的自动对比度处理不是很满意,可以打开效果控件找到自动对比度参数设置,自行来调整自动对比度的参数得到自己想要的效果。

    PR懒人调色之自动对比度的用法

     

     

    展开全文
  • 用c++实现图像对比度增强,通过点算子函数来增强图像对比度,参考书上的函数,自己写的代码
  • 文本提取是字符识别的关键步骤。 其准确性高度依赖于文本区域的位置。 在本文中,我们提出了一种... 实验表明,本文提出的方法对于字体大小,字体颜色,语言,阴暗环境等变化较大的低对比度文本图像具有较的鲁棒性。
  • 实现夜间图像增强,使得图像对比度,细节信息更丰富
  • 摘 要:指纹图像采集过程常会造成对比度等非线性失真,基于模糊逻辑的处理方法常用于改善指纹图像质量。研究了模糊特征平面增强算法和基于广义模糊算子的图像增强算法,将两种算法应用于指纹图像对比度增强,并对...
  • 摘 要:指纹图像采集过程常会造成对比度等非线性失真,基于模糊逻辑的处理方法常用于改善指纹图像质量。研究了模糊特征平面增强算法和基于广义模糊算子的图像增强算法,将两种算法应用于指纹图像对比度增强,并对...
  •  由于曝光不足等因素的影响,图像的亮度分布会发生非线性失真,常常表现为对比度、图像的整体感觉较暗等。目前已经有很多基于灰度直方图的方法来增强对比度以改善图像质量。Gordon 等人最初提出了通过扩大当前...
  • 计算了大气顶的目标背景对比度, 并讨论了卷云特性参数和目标高度对目标背景对比度的影响。结果表明: 在水汽吸收波段, 卷云大气反射率随卷云高度和光学厚度的增加而增大、随卷云粒子有效尺度的增大而减小; 目标背景...
  • 图像对比度扩展 代码 Python - 学习记录 Python应用领域和就业形势分析 简单的说,Python是一个“优雅”、“明确”、“简单”的编程语言。 学习曲线低,非专业人士也能上手 开源系统,拥有强大的生态圈 解释型语言,...
  • OpenCV 对比度增强

    千次阅读 2021-03-23 15:52:12
    图像增强的一种重要方法是对比度增强,常见的有以下几种方法: 直方图均衡,局部自适应对比度增强(ACE adaptiveContrastEnhancement),自适应直方图均衡(CLAHE),自动对比度。 1. 直方图均衡 cv::...

    图像增强的一种重要方法是对比度增强,常见的有以下几种方法:

    直方图均衡,局部自适应对比度增强(ACE adaptiveContrastEnhancement),自适应直方图均衡(CLAHE),自动对比度。

    1. 直方图均衡

            cv::equalizeHist(src, dst);

    2. 自适应直方图均衡(CLAHE)参考

            cv::Mat clahe_img = srcGray.clone();
    	cv::Mat clahe_dst;
    	cv::Ptr<cv::CLAHE> clahe = cv::createCLAHE();
    	clahe->setClipLimit(8.);    // (int)(4.*(8*8)/256)
    	clahe->setTilesGridSize(Size(32, 32)); // 将图像分为8*8块
    	clahe->apply(clahe_img, clahe_dst);

    3. 局部自适应对比度增强(ACE)参考

    void adaptContrastEnhancement()
    {
    	cv::Mat srcMat = cv::imread("1.JPG");
    	cv::Mat srcGray;
    	cv::cvtColor(aConMat, srcGray, cv::COLOR_BGR2GRAY);
    
    	const int WINSIZE = 15;
    	const int MAXCG = 10;
    
    	Mat localMeansMatrix(srcGray.rows, srcGray.cols, CV_32FC1);
    	Mat localVarianceMatrix(srcGray.rows, srcGray.cols, CV_32FC1);
    
    	if (!getVarianceMean(srcGray, localMeansMatrix, localVarianceMatrix, WINSIZE))   //对Y通道进行增强;
    	{
    		cerr << "计算图像均值与标准差过程中发生错误";
    		return ;
    	}
    
    	Mat temp = srcGray.clone();
    
    	Scalar  mean;
    	Scalar  dev;
    	meanStdDev(temp, mean, dev);
    
    	float meansGlobal = mean.val[0];
    	Mat dstMat(srcGray.rows, srcGray.cols, CV_8UC1);
    
    	for (int i = 0; i < srcGray.rows; i++)            //遍历,对每个点进行自适应调节
    	{
    		for (int j = 0; j < srcGray.cols; j++)
    		{
    			if (localVarianceMatrix.at<float>(i, j) >= 0.01)
    			{
    				float cg = 0.3*meansGlobal / localVarianceMatrix.at<float>(i, j);
    				float cgs = cg > MAXCG ? MAXCG : cg;
    				cgs = cgs < 1 ? 1 : cgs;
    
    				int e = localMeansMatrix.at<float>(i, j) + cgs * (temp.at<uchar>(i, j) - localMeansMatrix.at<float>(i, j));
    				if (e > 255) { e = 255; }
    				else if (e < 0) { e = 0; }
    				dstMat.at<uchar>(i, j) = e;
    			}
    			else
    			{
    				dstMat.at<uchar>(i, j) = temp.at<uchar>(i, j);
    			}
    		}
    
    	}
    }
    
    bool getVarianceMean(Mat &scr, Mat &meansDst, Mat &varianceDst, int winSize)
    {
    	if (!scr.data)  //判断图像是否被正确读取;
    	{
    		cerr << "获取方差与均值的函数读入图片有误";
    		return false;
    	}
    
    	if (winSize % 2 == 0)
    	{
    		cerr << "计算局部均值与标准差的窗口大小应该为单数";
    		return false;
    	}
    
    	Mat copyBorder_yChannels;                        //扩充图像边界;
    	int copyBorderSize = (winSize - 1) / 2;
    	copyMakeBorder(scr, copyBorder_yChannels, copyBorderSize, copyBorderSize, copyBorderSize, copyBorderSize, BORDER_REFLECT);
    
    	for (int i = (winSize - 1) / 2; i < copyBorder_yChannels.rows - (winSize - 1) / 2; i++)
    	{
    		for (int j = (winSize - 1) / 2; j < copyBorder_yChannels.cols - (winSize - 1) / 2; j++)
    		{
    
    			Mat temp = copyBorder_yChannels(Rect(j - (winSize - 1) / 2, i - (winSize - 1) / 2, winSize, winSize));   //截取扩展后的图像中的一个方块;
    
    			Scalar  mean;
    			Scalar  dev;
    			meanStdDev(temp, mean, dev);
    
    			varianceDst.at<float>(i - (winSize - 1) / 2, j - (winSize - 1) / 2) = dev.val[0];     ///一一对应赋值;
    			meansDst.at<float>(i - (winSize - 1) / 2, j - (winSize - 1) / 2) = mean.val[0];
    		}
    	}
    
    
    	return true;
    }

    4. 自动对比度参考

    Mat autocontrost(Mat matface)
    {
    	//进行自动对比度校正
    	double HistBlue[256] = { 0 };
    	int bluemap[256] = { 0 };
    
    	double dlowcut = 0.1;
    	double dhighcut = 0.1;
    	for (int i = 0; i < matface.rows; i++)
    	{
    		for (int j = 0; j < matface.cols; j++)
    		{
    			int iblue = matface.at<uchar>(i, j);
    			HistBlue[iblue]++;
    		}
    	}
    	int PixelAmount = matface.rows*matface.cols;
    	int isum = 0;
    	// blue
    	int iminblue = 0; int imaxblue = 0;
    	for (int y = 0; y < 256; y++)//这两个操作我基本能够了解了
    	{
    		isum = isum + HistBlue[y];
    		if (isum >= PixelAmount * dlowcut*0.01)
    		{
    			iminblue = y;
    			break;
    		}
    	}
    	isum = 0;
    	for (int y = 255; y >= 0; y--)
    	{
    		isum = isum + HistBlue[y];
    		if (isum >= PixelAmount * dhighcut*0.01)
    		{
    			imaxblue = y;
    			break;
    		}
    	}
    	// 自动色阶
    		//自动对比度
    	int imin = 255; int imax = 0;
    	if (imin > iminblue)
    		imin = iminblue;
    	iminblue = imin;
    	if (imax < imaxblue)
    		imax = imaxblue;
    	imaxblue = imax;
    	/
    	//blue
    	for (int y = 0; y < 256; y++)
    	{
    		if (y <= iminblue)
    		{
    			bluemap[y] = 0;
    		}
    		else
    		{
    			if (y > imaxblue)
    			{
    				bluemap[y] = 255;
    			}
    			else
    			{
    				//  BlueMap(Y) = (Y - MinBlue) / (MaxBlue - MinBlue) * 255      '线性隐射
    				float ftmp = (float)(y - iminblue) / (imaxblue - iminblue);
    				bluemap[y] = (int)(ftmp * 255);
    			}
    		}
    
    	}
    	//查表
    	for (int i = 0; i < matface.rows; i++)
    	{
    		for (int j = 0; j < matface.cols; j++)
    		{
    			matface.at<uchar>(i, j) = bluemap[matface.at<uchar>(i, j)];
    		}
    	}
    	return matface;
    }

     

    展开全文
  • 为了扩大对超短激光脉冲对比度的测量范围, 准确地测量超短激光脉冲的对比度, 利用非线性晶体对激光脉冲强度变化十分敏感的特性, 研究了超短激光脉冲三阶相关信号的产生过程, 并在此基础上, 研制了一台三阶相关仪, 对...
  • OpenCV-图像对比度

    万次阅读 多人点赞 2021-09-04 22:47:12
    OpenCV&C++代码实现图像对比度调整
  • 宽W、高为H,输出图像为O,图像的线性变换可以利用以下公式: a的改变影响图像的对比度,b的改变影响图像的亮度 线性变换python实现 #!usr/bin/env python3 #-*- coding:utf-8 -*- #-------------------------- """ @...
  • 再来看一张图⬇️饱和和明,是色彩设计中,最常用的两个变量,饱和和明很大程度上决定了色彩呈现给人的感受,饱和、明越高,视觉冲击力越强烈;饱和、明较低的时候,视觉上越温和。一起看...
  • halcon学习之图像对比度增强(1)

    千次阅读 2021-05-19 08:49:22
    Halcon中如何通过灰度线性映射增强图片对比度,文章会做一些详细介绍 如果你用过Photoshop,那么想必对增强图像的对比度很熟悉。在Photoshop中,我们对下面这张图执行“色阶”调整: 执行“色阶”调整:可以观察...
  • 使用Ni / ZnS /铜酞菁(CuPc)/ Ni对比度增强叠层(CES)和ZnS减反射(AR)层成功制造了高对比度的顶部发射有机发光二极管。 有源区之外的CES和AR层降低了器件设计的复杂性,尽管由于器件膜的形态恶化,它们的利用率...
  • 色调、锐度、对比度、饱和度

    千次阅读 2020-06-09 11:12:19
    色调 色调是指一幅作品色彩外观的基本倾向。 色调在冷暖方面分为暖色调与冷色调:红色、橙色、黄色–为暖色调,象征着:太阳、火焰。绿色、蓝色、黑色–为冷色调,象征着:森林、大海...对比度指的是一幅图像中明暗区域最
  • 对比度调整的各种方法(一)

    万次阅读 2018-08-26 21:37:10
    基于直方图的对比度调整方法 1.直方图均衡化 直方图均衡化通过使用累积函数对灰度值进行“调整”以实现对比度的增强。直方图均衡化处理的“中心思想”是把原始图像的灰度直方图从比较集中的某个灰度区间变成在全部...
  • c++ opencv实现图像对比度增强

    千次阅读 2021-01-06 16:39:13
    #include<iostream> #include<opencv2/opencv.hpp> #include<math.h> using namespace cv; int main() { Mat example = imread("D:\\VC项目\\img1.jpg"); if (!example.data) ... /
  • 百度AI攻略:图像对比度增强

    千次阅读 2019-12-27 10:41:32
    图像对比度增强:调整过暗或者过亮图像的对比度,使图像更加鲜明 调用攻略(Python3) 首先认证授权: 在开始调用任何API之前需要先进行认证授权,具体的说明请参考: http://ai.baidu.com/docs#/Auth/top 获取...
  •   我们回忆一下对比度增强的初衷,对比度增强是为了让本身对比度的图像的对比度变得明显,而对本身对比度的图像,是没必要做增强的。那么在同一图像中,我们尤其需要增强对比度的部分。而方差表示的...
  • 亮度、对比度与饱和度

    千次阅读 2019-09-04 09:48:42
    亮度是指图片的明暗程度,对比度是指图片明暗的差异,饱和度则是图片颜色的饱满程度。 图片文件一般是RGB格式,当然也有的是YCBR格式。前者主要用于显示,后者则主要用于印刷。当然世上没有绝对的事情,也有人喜欢...
  • VB编写人“Monitor Tune”调整工具,让旧显示器焕发青春,呵呵,是不是有点夸张了,不过功能确实很,通过这个小工具你可以调整显示器的亮度、对比度、色相等,代码也是超级简单,应该看一上。如果你的显示器调节...
  • 对比度增强算法

    万次阅读 2018-09-06 14:25:24
    直方图拉伸是通过对比度拉伸对直方图进行调整,从而“扩大”前景和背景灰度的差别,以达到增强对比度的目的,这种方法可以利用线性或非线性的方法来实现;直方图均衡化则通过使用累积函数对灰度值进行“调整”以实现...
  • Halcon图像处理拉开对比度

    千次阅读 2020-05-04 09:28:19
    其实在图像处理中,拉开对比度是最重要的一项。常用的拉开对比度方式和使用算子如下: 1.将RGB图像拆分通道 算子:decompose3()将RGB图像拆分成三个通道 R G B,数字3表示按照3通道拆分 -> trans_from_...
  • 有时候,我们是不需要这么对比度的,很高的对比度在视觉上未必让人舒服,于是就有了对比度调整强度的问题。对于使用线性变换的方法增强对比度,调整强度就是线性变换y=kx+b中间的k,比如说要求把对比度提高1.2倍...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 133,206
精华内容 53,282
关键字:

对比度强