
图像处理
文章平均质量分 77
Fred_Yang2013
这个作者很懒,什么都没留下…
展开
-
RGB、HSV和Lab颜色空间
转载自:http://blog.youkuaiyun.com/carson2005/article/details/7200440http://blog.youkuaiyun.com/carson2005/article/details/6243892RGB颜色空间: RGB(red,green,blue)颜色空间最常用的用途就是显示器系统(计算机、电视机等都是采用RGB颜色空间来进转载 2013-09-04 17:46:56 · 13961 阅读 · 0 评论 -
基于halcon10.0二次开发基本步骤(VS2010 C#.net)
1.从Hdevelop中导出写好的halcon程序,该程序是自带的Sobel_amp例子,选项一定要和下图相同!要不然运行时会出错:2.新建一个C#项目:3.建好之后如图所示:4.添加.net组件:首先打开工具箱在工具箱右击->选择项:选择浏览在如下目录中选择第一项:确定后出现HWindowCont原创 2013-07-31 12:48:28 · 11491 阅读 · 7 评论 -
OpenCV 2 学习笔记(25): 使用分水岭分割图像
关于分水岭的文章见:[1] Vincent L, Soille P. Watersheds in Digital Spaces : An Efficient Algorithm Based on Immersion Simulations[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence. 1991, 13原创 2013-11-08 11:14:04 · 4146 阅读 · 0 评论 -
图像处理与计算机视觉基础,经典以及最近发展
************************************************************************************************************************************************************************************ 在这里,我转载 2013-12-03 16:59:59 · 2643 阅读 · 1 评论 -
BMP文件结构
转载自:http://www.cnblogs.com/kingmoon/archive/2011/04/18/2020097.htmlBMP文件存储结构的格式可以在Windows中的WINGDI.h文件中找到定义。BMP文件总体上由4部分组成,分别是位图文件头、位图信息头、调色板和图像数据,如表5-1所示。表5-1 BMP文件的组成结构位图文件头(bitmap-fi转载 2013-12-04 20:41:58 · 1126 阅读 · 0 评论 -
OpenCV 2 学习笔记(27): 自选区域进行GrabCut图像分割
文中主要代码包括两部分,第一部分是人机交互选取mub原创 2014-05-29 16:44:44 · 2526 阅读 · 0 评论 -
OpenCV 2 学习笔记(26): 自选区域进行模板匹配
在定位中通常需要根据目标区域特征在图像中找出其正确的位置。使用比较多的方法还是模板匹配,模板匹配是根据区域的灰度值进行匹配,将结果存储在矩阵中,然后根据模板匹配所使用方法的不同寻找矩阵中最大值或者最小值就是最佳匹配。在opencv中使用cv::matchTemplate(src, temp, result, CV_TM_CCORR_NORMED);算子进行匹配。具体相关的解释见:http://原创 2013-12-17 14:21:29 · 7188 阅读 · 1 评论 -
OpenCV 2 遇到问题汇总
Matcher_Simple.obj: error LNK2019: 无法解析的外部符号"public:__thiscall cv::SURF::SURF(void)" (??0SURF@cv@@QAE@XZ),该符号在函数_wmain 中被引用Matcher_Simple.obj: error LNK2019: 无法解析的外部符号"public:__thiscall cv::SURF::SURF原创 2013-08-02 15:50:44 · 2518 阅读 · 0 评论 -
Halcon 1D测量(2) :测量特定灰度值像素
首先在测量之前我们明白,测量点和背景之间一定有灰度值的差异,这是前提。和前面一样,首先必须找到一个ROI。然后通过gen_measure_rectangle2得到一个测量的句柄。由于我们不是测量边缘对,所以要换方法了,但是和测量边缘对的原理相同,我们需要先得到Profile,算子measure_projection可以找到,但是注意,他返回的是原始的,没有经过平滑滤波的“线条”,注意这里的原创 2013-10-03 20:35:33 · 9282 阅读 · 3 评论 -
OpenCV 2 学习笔记(21): 使用直方图比较检索相似图像
基于内容的图像检索在计算机视觉中是一个重要的方法。它从一组图片中找出一个和给定图片内容相似的图片。在前面我们已经学习过灰度直方图的相关知识,它包含了图像内容的许多信息。言下之意就是直方图可以被用来进行基于内容的图像检索。也就是说我么可以通过简单的比较图像的直方图来测量两张图片的相似性。OpenCV有一个函数会估计它们之间的相似性。但是直方图必须是要经过定义的。这种比较方法在过去已经提出了很多,原创 2013-09-22 19:25:00 · 3592 阅读 · 0 评论 -
OpenCV 2 学习笔记(24): 使用形态学滤波检测边缘与角点
在一幅灰度图像中,我们可以把亮的那一部分比作山,暗的那一部分比作山谷,而边缘就是山和山谷的相接的地方,这部分的灰度值会急剧的变化。如果在边缘地方使用腐蚀操作,那么和边缘交接的亮的地方就会被0所替代,也就山的一部分变成了山谷,那么山的高度就降低了。而膨胀的结果和这个相反。而水平地势的地方,也就是山顶的平地不会被影响到。利用这个原理我们就可以找到图像的边缘。也就是找出腐蚀和膨胀后的图像的不同,结果原创 2013-10-07 16:34:49 · 1943 阅读 · 0 评论 -
OpenCV 2 学习笔记(3): 一个简单的opencv程序:在Console上显示图像
首先在VC2010下新建一个Console应用程序,这个就不介绍了。在应用程序设置中,在空项目中打钩,但是在编译运行时要选择Release模式,要不然会出现错误,如果选择预编译头选项该错误就不会出现,具体还不知道什么原因。 在编译运行opencv前需要告诉程序去哪里寻找Opencv库和include库,这个再第一节安装opencv库时已经介绍过。但是如果每新建一个工程就要进行这些操作会比较麻原创 2013-07-30 17:37:26 · 1857 阅读 · 0 评论 -
OpenCV 2 学习笔记(4): 加载,显示和保存图像,Mat类与IplImage类
这一节介绍一些图像处理的最基本的方法。首先要声明一个类的对象cv:Mat image; 他有一个方法size()可以返回图像的宽和高: std::cout << "size: " << image.size().height << " , " 接下来去读取图像,并且分配内存: image= cv::imread("img.jpg"); 接下来就原创 2013-07-30 17:52:07 · 11012 阅读 · 0 评论 -
OpenCV 2 学习笔记(14): 颜色空间转换
RGB是以红,绿,蓝为三基色的颜色空间。之所以选择这三种主颜色是因为这三种颜色组合起来可以形成大量不同颜色。实际上,人类视觉系统也是基于视锥细胞对于红绿蓝光谱的三基色的感知。在数字图像中的颜色空间通常是不变的,这是因为它们获得光线的方法是默认的。捕捉的光线都经过红绿蓝滤波器。另外,在数字图像中,红绿蓝信道中的颜色等量时,就会获得一个从黑(0,0,0)到白(255,255,255)的灰度级。原创 2013-08-30 10:58:00 · 1780 阅读 · 1 评论 -
OpenCV 2 学习笔记(19): 利用均值漂移(Meanshift)寻找物体
关于meanshift算法的推导,请看http://www.cnblogs.com/liqizhou/archive/2012/05/12/2497220.html我觉得对于使用OpenCV的人来说,大部分都是想解决实际的问题,那么理论性的东西就不需要深究了,毕竟不是写论文。想使用的话,知道算法的名字,参数的意义和使用的步骤就可以了。C++: int meanShift(Input原创 2013-09-10 09:29:44 · 4934 阅读 · 0 评论 -
Halcon 1D测量(1) :测量边缘对
首先先说明一下Hdevelop图形显示界面的坐标:基本上和其他环境中图像的坐标一样,左上角为(0,0),X轴为横轴,Y轴为纵轴*测量手机电池的高度有多少个像素**读取图像*read_image (Image1, 'D:/picture/20130930153459.jpg')get_image_size (Image1, Width, Height)dev_close_wi原创 2013-09-30 21:51:31 · 17359 阅读 · 1 评论 -
OpenCV 2 学习笔记(23): 开操作与闭操作
上一节中我们也说过:1. 开操作是先腐蚀、后膨胀处理。2. 闭操作是先膨胀、后腐蚀处理。也就是说开操作可以这样实现:cv::erode(result,result,cv::Mat()); cv::dilate(image,result,cv::Mat()); 闭操作就是把顺序颠倒过来。但是OpenCV中有专门的形态学算子:C++: void morpholo原创 2013-10-06 13:54:03 · 7682 阅读 · 4 评论 -
OpenCV 2 学习笔记(20): 关于NAryMatIterator
NAryMatIterator 是一个n元多维数组迭代器,说到这他和MatIterator的区别,我想大家都已经了解了:NAryMatIterator是一个Mat迭代器,而MatIterator是Mat元素的迭代器而NAryMatIterator的作用就是可以用来同时访问具有相同类型和结构的Mat。有时候也可以使用MatIterator来循环操作每一个Mat,但是有时候这样做会比较麻烦。原创 2013-09-22 11:23:34 · 4703 阅读 · 0 评论 -
OpenCV 2 学习笔记(22): 腐蚀与膨胀
http://www.cnblogs.com/slysky/archive/2011/10/16/2214015.html原创 2013-09-26 15:14:52 · 3452 阅读 · 2 评论 -
笔试题(1)
微软面试题目(二)移动数组元素原创 2014-08-27 20:16:51 · 1068 阅读 · 0 评论