增强后的图像需要通过图像处理获得定量的值.在实际程序设计过程中,轮廓很多时候都是重要的分析变量.参考Halcon的相关函数,我增强了Opencv在这块的相关功能.      //寻找最大的轮廓     VP FindBigestContour(Mat src){             int imax = 0; //代表最大轮廓的序号         int imaxcontour = -1; //代表最大轮廓的大小         std::vector<std::vector<cv::P…
//根据轮廓的圆的特性进行选择     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…
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…
//顶帽去光差,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);         //顶帽…
CString ExportListToExcel(CString  sExcelFile,CListCtrl* pList, CString strTitle)     {         CString warningStr;         if (pList->GetItemCount ()>0) {                 CDatabase database;                                       CString sSql;      …
图像增强是图像处理的第一步.这里集成了一些实际使用过程中有用的函数.   //读取灰度或彩色图片到灰度     Mat imread2gray(string path){         Mat src = imread(path);         Mat srcClone = src.clone();         if (CV_8UC3 == srcClone.type() )             cvtColor(srcClone,srcClone,CV_BGR2GRAY);   …
//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…
// 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…
//使得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;     }   将选择的区域打上变成半透明.虽然这只是一个简单的函数,但是使用起来灵活多变. 比如说,可以将图…
   //填充孔洞     //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){      …
    //获得当前目录路径     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…
Atitit 图像处理和计算机视觉的分类 三部分 图像处理 图像分析 计算机视觉 1.1. 按照当前流行的分类方法,可以分为以下三部分:三部分 图像处理 图像分析 计算机视觉1 1.2. 图像处理需要的理论基础(数学,信号处理,3. 模式识别 图像处理与计算机视觉)2 1.2.1. 1. 数学2 1.2.2. 2. 信号处理3 1.3. 四. 图像处理与分析3 1.3.1. 1. Bilateral Filter3 1.3.2. 2. Color4 1.3.3. 3. Compression a…
Atitit 图像处理的摩西五经attilax总结 1. 数字图像处理(第三版)1 2. 图像处理基础(第2版)(世界著名计算机教材精选)1 3. 计算机视觉特征提取与图像处理(第三版)2 4. OpenCV图像处理 2 4.1. 模式识别(英文版)(第4版) 西奥多里德斯著2 4.2. 图像处理,分析与机器视觉 第三版Sonka等著 艾海舟等译2 4.3. 计算机视觉:理论与算法 RichardSzeliski著2 1. 数字图像处理(第三版) 作者:(美)冈萨雷斯,(美)伍兹 著 Line…
Atitit 图像处理的心得与疑惑 attilax总结 1.1. 使用类库好不好??还是自己实现算法1 1.2. 但是,如果遇到类库体积太大,后者没有合适的算法,那就只能自己开发算法了1 1.3. 如果使用类库了,如何提升自己的算法理论水平呢?1 1.4. 图像处理使用什么语言好??Java c++ c# ??1 1.5. 广度发展还是深度发展??2 1.1. 使用类库好不好??还是自己实现算法 个人感觉,能用类库就类库把,其实也没什么,但是理论原理要搞清楚..不一定非要自己实现算法..否则使用…
Atitit 图像处理 调用opencv 通过java  api   attilax总结 1.1. Opencv java api的支持 opencv2.4.2 就有了对java api的支持1 1.2. 安装2016-05-19  opencv v2.4.13   267M  ,一个压缩包解压即可1 1.3. Opencv d java 接口api  ,把opencv-2413.jar加入java项目1 1.4. /AtiPlatf_ee/src/com/attilax/img/SfitTes…
Atitit MATLAB 图像处理 经典书籍attilax总结 1.1. MATLAB数字图像处理1 1.2. <MATLAB实用教程(第二版)>((美)穆尔 著)[简介_书评_在线阅读] - 当当图书.html1 1.3. 数字图像处理(MATLAB版)(第二版)(本科教学版)2 1.1. MATLAB数字图像处理 第1章 图像处理与MATLAB2007a简介 第2章 图像的编码和解码 第3章 图像复原 第4章 图像处理的相关操作 第5章 图像频域变换 第6章 图像处理中的代数运算及几何变…
Atitit 图像处理类库大总结attilax qc20 1.1. 选择与组合不同的图像处理类库1 1.2. Halcon 貌似商业工具,功能强大.1 1.3. Openvc  Openvc功能也是比较多的,api接口1 1.4.  Jhlabs  Java Image Filters ..2 1.5. Javafx 的javafx.scene.effect类库,处理blend,blur,glow,light还是有一些的东东..2 1.6. Matlab (功能有: 频域变换(傅里叶变换,dct…
Atitit MATLAB 图像处理attilax总结 1.1. 下载 Matlab7.0官方下载_Matlab2012 v7.0 官方简体中文版-办公软件-系统大全.html1 1.2. Matlab cli接口 命令行执行m文件1 1.3. Matlab编程语言2 1.4. Matlab helo world3 1.5. matlab如何调用外部函数_百度知道.html3 1.6. matlab中如何定义函数3 1.7. 获取matlab的输出console3 2. qa4 2.1. Err…
 试验报告 一.试验原理: 图像点处理是图像处理系列的基础,主要用于让我们熟悉Matlab图像处理的编程环境.灰度线性变换和灰度拉伸是对像素灰度值的变换操作,直方图是对像素灰度值的统计,直方图均衡是对灰度值分布的变换. 1.灰度线性变换 (1)线性变换函数 原图向灰度值为g,通过线性函数f(x)=kx+b转换为f(g)得到灰度的线性变换. (2)代码实现 Matlab中支持矩阵作为函数参数传入,定义一个线性转换函数,利用Matlab矩阵操作,用一行代码即可对整个二维图像矩阵中所有点的灰度进行线.…
实验一图像的滤波处理 一.实验目的 使用MATLAB处理图像,掌握均值滤波器和加权均值滤波器的使用,对比两种滤波器对图像处理结果及系统自带函数和自定义函数性能的比较,体会不同大小的掩模对图像细节的影响. 二.实验内容 使用n=3,5,9的正方形均值滤波器和加权均值滤波器对图像Fig1的滤波处理.观察处理前后图像效果,分析实验结果和算法特点. 三.实验原理 1.均值滤波器(平滑线性滤波器):其响应是包含模板内像素平均值,低通滤波器. R = (领域内所有点的值*对应点的掩模系数之和)/(掩模系数之…
卷积其实是图像处理中最基本的操作,我们常见的一些算法比如:均值模糊.高斯模糊.锐化.Sobel.拉普拉斯.prewitt边缘检测等等一些和领域相关的算法,都可以通过卷积算法实现.只不过由于这些算法的卷积矩阵的特殊性,一般不会直接实现它,而是通过一些优化的手段让计算量变小.但是有些情况下卷积矩阵的元素值无甚规律或者有特殊要求,无法通过常规手段优化,这个时候只能通过原始的方式实现.因此,如何快速的实现图像的任意卷积矩阵操作也有必要做适当的研究. 目前,通过友人共享或自己搜索找到的一片关于任意核算法优…
杂项之图像处理pillow 本节内容 参考文献 生成验证码源码 一些小例子 1. 参考文献 http://pillow-cn.readthedocs.io/zh_CN/latest/ pillow中文文档http://pillow.readthedocs.io/en/3.4.x/ pillow官方文档http://blog.csdn.net/orangleliu/article/details/43529319 一些小例子http://python.jobbole.com/83685/ pill…
1.灰度拉伸 灰度拉伸又叫对比度拉伸,它是最基本的一种灰度变换,使用的是最简单的分段线性变换函数,它的主要思想是提高图像处理时灰度级的动态范围.…
详情点击:http://www.oschina.net/project/lang/22/php?tag=141&os=0&sort=view PHP 图像处理库 Grafika Grafika 是一个 PHP 的图像处理库.可用于改变图像大小.剪切.比较,以及添加水印等操作.同时可以创建一些文本图片.几何图形并应用一些过滤器.基于 Imagick 和 GD 构建. 特征 智能裁剪 图像比较 感知哈希 高级图像处理过滤器 贝塞尔曲线 示例代码: ...更多Grafika信息 最近更新:Gra…
不得不说,jws.mono真的给我们带来了很大的便利,它免除了我们编译Linux.NET所带来的烦恼,节省了我们的时间.但是金无足赤人无完人,虽然jws.mono已经大致能够提供与我们自行编译相同的效果,不过它仍然有一点不足,那就是我们无法使用与图形处理相关的工作(System.Drawing).造成这点不足的原因就是在于,我们的jws.mono没有内置与常见图像处理相关的库,澄清一点,这里所指的库是类似于"libpng库"."libjpeg库"."gd库…
Atitit图像处理的用途 1.1. 分类识别 (人脸检测,肤色识别,人类检测:1 1.2. 炫丽的动态按钮生成:色相旋转+自己的草书等图片合成,图片自动裁剪1 1.3. 集成调用自绘gui接口:识别控件,按钮位置识别,为自动化鼠标操作选好roi1 1.4. Ocr 手写ocr等.2 1.5. 图像压缩2 1.6. 垃圾图片检测(体积过小图片,分辨率过小图片,损害图片检测)2 1.7. 模糊图片检测,方便识别模糊图片,删除2 1.8. 重复图片检测2 1.9. 高复杂度的验证码图片生成2 1.1…