//使得rect区域半透明     Mat translucence(Mat src,Rect rect,int idepth){         Mat dst = src.clone();         Mat roi = dst(rect);         roi += cv::Scalar(idepth,idepth,idepth);         return dst;     }   将选择的区域打上变成半透明.虽然这只是一个简单的函数,但是使用起来灵活多变. 比如说,可以将图…
图像增强是图像处理的第一步.这里集成了一些实际使用过程中有用的函数.   //读取灰度或彩色图片到灰度     Mat imread2gray(string path){         Mat src = imread(path);         Mat srcClone = src.clone();         if (CV_8UC3 == srcClone.type() )             cvtColor(srcClone,srcClone,CV_BGR2GRAY);   …
// Multiply 正片叠底 void Multiply(Mat& src1, Mat& src2, Mat& dst) {     for(int index_row=0; index_row<src1.rows; index_row++)     {         for(int index_col=0; index_col<src1.cols; index_col++)         {             for(int index_c=0; ind…
//顶帽去光差,radius为模板半径     Mat moveLightDiff(Mat src,int radius){         Mat dst;         Mat srcclone = src.clone();         Mat mask = Mat::zeros(radius*2,radius*2,CV_8U);         circle(mask,Point(radius,radius),radius,Scalar(255),-1);         //顶帽…
   //填充孔洞     //fillholes     Mat fillHoles(Mat src){         Mat dst = getInnerHoles(src);         threshold(dst,dst,0,255,THRESH_BINARY_INV);         dst = src + dst;         return dst;     }     //获得图像中白色的比率     float getWhiteRate(Mat src){      …
GOCVHelper(GreenOpen Computer Version Helper )是我在这几年编写图像处理程序的过程中积累下来的函数库.主要是对Opencv的适当扩展和在实现Mfc程序时候的功能增强.     这里将算法库开放源代码,并且编写一系列blog对函数实现进行说明.目的是在于“取之于互联网,用之于互联网”.并且也希望该库能够继续发展下去.     由于算法库基于Opencv和Mfc进行编写,所以要求阅读使用者具备一定基础.     最终提交的是GOCVHelper.h 和GO…
GOCVHelper(GreenOpen Computer Version Helper )是我在这几年编写图像处理程序的过程中积累下来的函数库.主要是对Opencv的适当扩展和在实现Mfc程序时候的功能增强.     这里将算法库开放源代码,并且编写一系列blog对函数实现进行说明.目的是在于“取之于互联网,用之于互联网”.并且也希望该库能够继续发展下去.     由于算法库基于Opencv和Mfc进行编写,所以要求阅读使用者具备一定基础.     最终提交的是GOCVHelper.h 和GO…
//string替换     void string_replace(string & strBig, const string & strsrc, const string &strdst)     {         string::size_type pos=0;         string::size_type srclen=strsrc.size();         string::size_type dstlen=strdst.size();         whi…
//根据轮廓的圆的特性进行选择     vector<VP> selectShapeCircularity(Mat src,Mat& draw,vector<VP> contours,float minvalue,float maxvalue){         vector<VP> result_contours;         draw = Mat::zeros(src.rows,src.cols,CV_8UC3);         for (int i=…
//根据轮廓的面积大小进行选择     vector<VP>  selectShapeArea(Mat src,Mat& draw,vector<VP> contours,int minvalue,int maxvalue){         vector<VP> result_contours;         draw = Mat::zeros(src.rows,src.cols,CV_8UC3);         for (int i=0;i<con…
增强后的图像需要通过图像处理获得定量的值.在实际程序设计过程中,轮廓很多时候都是重要的分析变量.参考Halcon的相关函数,我增强了Opencv在这块的相关功能.      //寻找最大的轮廓     VP FindBigestContour(Mat src){             int imax = 0; //代表最大轮廓的序号         int imaxcontour = -1; //代表最大轮廓的大小         std::vector<std::vector<cv::P…
CString ExportListToExcel(CString  sExcelFile,CListCtrl* pList, CString strTitle)     {         CString warningStr;         if (pList->GetItemCount ()>0) {                 CDatabase database;                                       CString sSql;      …
    //获得当前目录路径     static CString GetLocalPath(){         CString csCfgFilePath;         GetModuleFileName(NULL, csCfgFilePath.GetBufferSetLength(MAX_PATH+1), MAX_PATH);          csCfgFilePath.ReleaseBuffer();          int nPos = csCfgFilePath.Revers…
//创建或续写目录下的csv文件,填写“文件位置-分类”对     int writeCsv(const string& filename,const Vector<pair<string,string>>srcVect,char separator ){         ofstream file(filename.c_str(),ofstream::app);         if (!file)             return 0;         for (i…
    //递归读取目录下全部文件(flag为r的时候递归)     void getFiles(string path, vector<string>& files,string flag){         //文件句柄         long   hFile   =   0;         //文件信息         struct _finddata_t fileinfo;         string p;         if((hFile = _findfirst(p…
图像增强是从像素到像素的操作,是以预定的方式改变图像的灰度直方图.有时又称为对比度增强,灰度变换.点运算不可能改变图像内的空间关系,输出像素的灰度值由输入像素的值决定.其作用: 对比度增强:扩展感兴趣特征的对比度. 光度学标定:去掉图像传感器的非线性影响.所谓光度学,就是在可见光波段内,考虑到人眼的主观因素后的相应计量学科称为光度学.标定即计算内参,在光度学范畴计算内参. 显示标定:克服图像保存和显示过程中的非线性因数. 轮廓线:进行阈值化 裁剪:输出灰度级裁剪到0~255之间. 首先,解释下什…
灰度图像--图像增强 直方图均衡化(Histogram equalization) 转载请标明本文出处:http://blog.csdn.net/tonyshengtan,欢迎大家转载,发现博客被某些论坛转载后,图像无法正常显示,无法正常表达本人观点,对此表示很不满意.有些网站转载了我的博文,很开心的是自己写的东西被更多人看到了,但不开心的是这段话被去掉了,也没标明转载来源,虽然这并没有版权保护,但感觉还是不太好,出于尊重文章作者的劳动,转载请标明出处!!!! 文章代码已托管,欢迎共同开发:ht…
<背景> 这次分享的脚本是对图像进行增强处理,包含对图像像素的色彩增强.亮度增强.对比度增强.图像尖锐化等增强操作,主要基于PIL包的lambda和ImageEnhance模块. 使用方法和上一贴一样,本文脚本进行了多项功能的集成,一键完成所有处理,图像会即刻显示处理后的效果,并全部保存成特定名称jpeg. 下图是对处理后的图片的二维比较,为了更直观地比较,将处理项(亮度,颜色,对比度,锐度)作为横坐标,处理强度参数作为纵坐标(0,0.25,0.5,0.75,1).当处理强度参数为1的时候,实…
前一段时间研究了一下图像增强算法,发现Retinex理论在彩色图像增强.图像去雾.彩色图像恢复方面拥有很好的效果,下面介绍一下我对该算法的理解. Retinex理论 Retinex理论始于Land和McCann于20世纪60年代作出的一系列贡献,其基本思想是人感知到某点的颜色和亮度并不仅仅取决于该点进入人眼的绝对光线,还和其周围的颜色和亮度有关.Retinex这个词是由视网膜(Retina)和大脑皮层(Cortex)两个词组合构成的.Land之所以设计这个词,是为了表明他不清楚视觉系统的特性究竟…
拉普拉斯金字塔融合是多图融合相关算法里最简单和最容易实现的一种,我们在看网络上大部分的文章都是在拿那个苹果和橙子融合在一起,变成一个果橙的效果作为例子说明.在这方面确实融合的比较好.但是本文我们主要讲下这个在图像增强方面的运用. 首先我们还是来讲下这个融合的过程和算法优化. 算法第一步:输入两个相同大小,位深的图像,通过拉普拉斯分解得到各自的拉普拉斯金字塔数据A和B. 算法第二步:选择下低频部分的融合规则,这里的低频部分,其实就是高斯金字塔最顶层那里的数据,这个数据相当于是原图像的一个高斯模糊的…
图像增强方面我共研究了Retinex.暗通道去雾.ACE等算法.其实,它们都是共通的.甚至可以说,Retinex和暗通道去雾就是同一个算法的两个不同视角,而ACE算法又是将Retinex和灰度世界等白平衡理论相结合的产物.下面将依次讨论,每个算法写一个心得,欢迎拍砖. 今天先写Retinex.Retinex理论认为,人眼观测到的图像S是光照图像L和物体反射图像R的乘积.而R才是真实的恒常性的图像,但是怎么从观测图像S中计算R呢?这是个病态问题,根本不可解.研究者就通过加以一定的约束条件,比如光照…
一.图像增强算法原理 图像增强算法常见于对图像的亮度.对比度.饱和度.色调等进行调节,增加其清晰度,减少噪点等.图像增强往往经过多个算法的组合,完成上述功能,比如图像去燥等同于低通滤波器,增加清晰度则为高通滤波器,当然增强一副图像是为最后获取图像有用信息服务为主.一般的算法流程可为:图像去燥.增加清晰度(对比度).灰度化或者获取图像边缘特征或者对图像进行卷积.二值化等,上述四个步骤往往可以通过不同的步骤进行实现,后续将针对此方面内容进行专题实验,列举其应用场景和处理特点. 本文章是一篇综合性文章…
在深度学习中,数据短缺是我们经常面临的一个问题,虽然现在有不少公开数据集,但跟大公司掌握的海量数据集相比,数量上仍然偏少,而某些特定领域的数据采集更是非常困难.根据之前的学习可知,数据量少带来的最直接影响就是过拟合.那有没有办法在现有少量数据基础上,降低或解决过拟合问题呢? 答案是有的,就是数据增强技术.我们可以对现有的数据,如图片数据进行平移.翻转.旋转.缩放.亮度增强等操作,以生成新的图片来参与训练或测试.这种操作可以将图片数量提升数倍,由此大大降低了过拟合的可能.本文将详解图像增强技术在K…
http://blog.csdn.net/dcrmg/article/details/53677739 1. 基于直方图均衡化的图像增强   直方图均衡化是通过调整图像的灰阶分布,使得在0~255灰阶上的分布更加均衡,提高了图像的对比度,达到改善图像主观视觉效果的目的.对比度较低的图像适合使用直方图均衡化方法来增强图像细节.   彩色图像的直方图均衡化实现: #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/…
图像增强的目的:改善图像的视觉效果或使图像更适合于人或机器的分析处理.通过图像增强,可以减少图像噪声,提高目标与背景的对比度,也可以增强或抑制图像中的某些细节.  --------------------------------------------------------------------------------------------------- 灰度变换:把原图像的像素灰度经过某个函数变换成新图像的灰度.可分为直线灰度变换法和直方图修正法. 直线灰度变换法:线性.分段线性.非线性…
Mat src= imread( "D:\\OCR\\Debug\\Temp\\Rects\\wholeMat_00191_0_0.jpg"); Mat dest; Mat kern = (Mat_<,) << , - ,, -, , -, , -, ); filter2D(src,dest,src.depth(),kern); imshow("src",src); imshow("dest",dest); imwrite(&q…
直方图均衡:统计图像像素灰度的直方图分布.对其进行重新分配以使图像的直方图分布更加均衡. 小波变换:图像轮廓主要体现在低频部分,可以通过对低频分解系数进行增强处理,对高频分解系数进行衰减处理,达到图像增强. clc; clear all; img=imread('D:\文件及下载相关\图片\gray.jpg'); gray_img=rgb2gray(img); [m,n]=size(gray_img); pr=zeros(,); : pr(i)=length(find(gray_img==i-)…
1         图像增强 1.1            直方图均衡化 对于灰度图像,可以使用直方图均衡化的方法使得原图像的灰度直方图修正为均匀的直方图. 代码如下: I2=histeq(I1); figure,imshow(I2); figure,imhist(I2); 原图像为lena的图片,经过直方图均衡化后的图片为Figure 1. Figure 1 原图灰度直方图请参见:MATLAB数字图像处理(一)基础操作和傅立叶变换,经过修正后的灰度直方图为Figure 2: Figure 2…
ACE(Automatic Color Enhancement),自动色彩增强算法,是一种对于彩色图像增强十分行之有效的方法.它的改进算法以及快速实现在文章Automatic Color Enhancement (ACE) and its Fast Implementation,2012中提出. 在NxN的图像上,ACE算法的算法复杂度为O(N^4),文章提出的新的ACE算法采取了两种近似的方法,一是采用多项式函数逼近坡度函数(Slope function)降低卷积计算量,二是采用不同程度的插值…
第四章 图像增强 图像增强是按特定的需要突出一幅图像中的某些信息,同时削弱或者去除某些不需要的信息的处理方法.其主要目的是使处理后的图像对某种特定的应用来说,比原始图像更加适用.因此这类处理是为了某种应用的目的而去改善图像质量的.处理的结果更适合于人的视觉特征或者机器的识别系统. 注意点: (1)     增强处理并不能增强原始图像的信息,只能增强对某种信息的辨别能力: (2)     增强处理具有主观性,和后面客观的图像复原有区别. 1 空间域增强 处理对象是图像中的像素,基本上以灰度映射变换…