【20160924】GOCVHelper MFC增强算法(4)

//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();

while( (pos=strBig.find(strsrc, pos)) != string::npos)

{

strBig.replace(pos, srclen, strdst);

pos += dstlen;

}

}

字符串操作一直都是重要的基础操作。在图像处理的过程中,涉及到文件名等变换都需要字符串操作。string_replace中能够成块地换字符。虽然在std中可能已经有相关函数,不过既然我自己的这个用的比较熟悉,就是使用了。

//C++的spilt函数

void SplitString(const string& s, vector<string>& v, const string& c){

std::string::size_type pos1, pos2;

pos2 = s.find(c);

pos1 = 0;

while(std::string::npos != pos2){

v.push_back(s.substr(pos1, pos2-pos1));

pos1 = pos2 + c.size();

pos2 = s.find(c, pos1);

}

if(pos1 != s.length())

v.push_back(s.substr(pos1));

}

依然是增强了std中的相关功能,实际使用的时候非常有用。

//! 通过文件夹名称获取文件名,不包括后缀

void getFileName(const string& filepath, string& name,string& lastname){

vector<string> spilt_path;

SplitString(filepath, spilt_path, "\\");

int spiltsize = spilt_path.size();

string filename = "";

if (spiltsize != 0){

filename = spilt_path[spiltsize-1];

vector<string> spilt_name;

SplitString(filename, spilt_name, ".");

int name_size = spilt_name.size();

if (name_size != 0)

name = spilt_name[0];

lastname = spilt_name[name_size-1];

}

}

前面的函数getfiles能够获得文件的真实路径。那么getFileName能够进一步处理,直接获得图片的名称。很多时候,图片读取了,需要处理一下,这个都是需要的。

来自为知笔记(Wiz)

时间: 2024-10-25 09:00:48

【20160924】GOCVHelper MFC增强算法(4)的相关文章

【20160924】GOCVHelper MFC增强算法(5)

CString ExportListToExcel(CString  sExcelFile,CListCtrl* pList, CString strTitle) { CString warningStr; if (pList->GetItemCount ()>0) { CDatabase database; CString sSql; CString tableName = strTitle; // 检索是否安装有Excel驱动 "Microsoft Excel Driver (*

优化的对比度增强算法用于有雾图像的清晰化处理(算法效果是我目前看到最为稳定的,且对天空具有天然的免疫力,极力推荐有需要的朋友研究)。

在未谈及具体的算法流程前,先贴几幅用该算法处理的效果. 不知道各位对这个算法的效果第一印象如何. 这个算法的原理来自于文章<Optimized contrast enhancement for real-time image and video dehazing>,作者是韩国人. 这个算法也是基于大气散射模型: 和现在一些常见的去雾文章有明显的不同的是,这篇文章的并不是基于暗通道原理的,也不是把重点强调在透射率图的细化上,而是提出了一种新的得到粗透射率图的方法.并且文章分别讲到了静态图像和视频

图像处理之Retinex增强算法(SSR、MSR、MSRCR)

视网膜-大脑皮层(Retinex)理论认为世界是无色的,人眼看到的世界是光与物质相互作用的结果,也就是说,映射到人眼中的图像和光的长波(R).中波(G).短波(B)以及物体的反射性质有关 其中I是人眼中看到的图像,R是物体的反射分量,L是环境光照射分量,(x, y)是二维图像对应的位置 基于上面的原理,看下Retinex常见的几种增强算法 一.     SSR(Single Scale Retinex)单尺度Retinex算法 它通过估算L来计算R,具体来说,L可以通过高斯模糊和I做卷积运算求得

用于图像去雾的优化对比度增强算法

图像去雾哪家强?之前我们已经讨论过了著名的基于暗通道先验的图像去雾(Kaiming He, 2009)算法,如果你用兴趣可以参考: 暗通道优先的图像去雾算法(上) 暗通道优先的图像去雾算法(下) 此外,网上也有很多同道推荐了一篇由韩国学者所发表的研究论文<Optimized contrast enhancement for real-time image and video dehazing>(你也可以从文末参考文献[1]给出的链接中下载到这篇经典论文),其中原作者就提出了一个效果相当不错的图

MFC Bresesnham算法

Bresesnham算法绘制直线段 Bresenham算法的意义:高效的将图形光栅化.其计算过程中均采用加法运算,故大大减少了程序的开销. 绘制直线段(MFC中) //传入参数:起点.终点,颜色 void CMy3_4View::Bresenham(CPoint p0, CPoint p1, COLORREF CLR) { //自定义二维坐标系 CDC *pDC = GetDC(); CRect rect; GetClientRect(&rect); pDC->SetMapMode(MM_A

电子助视仪 视觉增强算法

电子助视仪 是一种将原始图像转换为某种对比度很高的图片,比如  转化为黑底白字,红底白字,白底红字,蓝底黄字,黄字蓝底等等. 主要的应用场景为为老人或者特殊弱视人群提供便捷的阅读.国内国外有公司是专门做这样设备的,比如诺基亚,zoomax.UEMAX等等.zoomax的效果尤其好,颜色对比度强烈,色彩饱和,做得很细腻.为此决定做一个类似于他们的效果的算法,并将至应用到手机app中或者移植到硬件中.经过半个多月的研发,终于做出了效果和zoomax一样. 对宽高为1280*1024视频,处理速度>1

基于Opencv和Mfc的图像处理增强库GOCVHelper(索引)

GOCVHelper(GreenOpen Computer Version Helper )是我在这几年编写图像处理程序的过程中积累下来的函数库.主要是对Opencv的适当扩展和在实现Mfc程序时候的功能增强. 这里将算法库开放源代码,并且编写一系列blog对函数实现进行说明.目的是在于“取之于互联网,用之于互联网”.并且也希望该库能够继续发展下去. 由于算法库基于Opencv和Mfc进行编写,所以要求阅读使用者具备一定基础. 最终提交的是GOCVHelper.h 和GOCVHelper版本号.

【20160924】GOCVHelper综述

GOCVHelper(GreenOpen Computer Version Helper )是我在这几年编写图像处理程序的过程中积累下来的函数库.主要是对Opencv的适当扩展和在实现Mfc程序时候的功能增强. 这里将算法库开放源代码,并且编写一系列blog对函数实现进行说明.目的是在于“取之于互联网,用之于互联网”.并且也希望该库能够继续发展下去. 由于算法库基于Opencv和Mfc进行编写,所以要求阅读使用者具备一定基础. 最终提交的是GOCVHelper.h 和GOCVHelper版本号.

【20160924】GOCVHelper 图像增强部分(4)

//使得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; } 将选择的区域打上变成半透明.虽然这只是一个简单的函数,但是使用起来灵活多变. 比如说,可以将图像某个区域变成半透明,然后在上面写字,这样起到强化作用: 也可以将一个区域图片在半透