随笔分类 -  图像处理以及opencv学习

图像处理,opencv,计算机视觉
摘要:1.CvSize: 矩形框大小,以像素为精度typedef struct CvSize{ int width; /* 矩形宽 */ int height; /* 矩形高 */}CvSize;/* 构造函数 */inline CvSize cvSize( int width, int height );2.cvGetSize: 返回矩阵或图像ROI的大小CvSize cvGetSize( const CvArr* arr ); //arr 数组头//返回图像或矩阵的行数和列数,如果是图像就返回ROI的大小3.例子:IplImage* src1=cvCreateImage(cvSize(... 阅读全文
posted @ 2013-09-21 14:09 Jun14 阅读(1812) 评论(0) 推荐(0)
摘要:访问以点(x,y)为起点的横纵10*10范围内的值,求和我先写了这个,怎么都不对 for (int countY = 0 ; countY imageData + y * dst_gray->widthStep); for(int countX=0; countX imageData + y * dst_gray->widthStep); for(int countX=0,xx=x; countX < 10 ; ++countX,++xx) { sum = sum + dst_ptr[xx]; cout... 阅读全文
posted @ 2013-09-20 15:01 Jun14 阅读(373) 评论(0) 推荐(0)
摘要:1.常见的噪声图像常常被强度随机信号所污染.一些常见的噪声有椒盐(Salt & Pepper)噪声、脉冲噪声、高斯噪声等。椒盐噪声含有随机出现的黑白强度值。脉冲噪声则只含有随机的白强度值(正脉冲噪声)或黑强度值(负脉冲噪 声)。与前两者不同,高斯噪声含有强度服从高斯或正态分布的噪声。椒盐噪声:2.滤波器 消除图像中的噪声成分叫作图像的平滑化或滤波操作。对滤波处理的要求有两条: 一是不能损坏图像的轮廓及边缘等重要信息;二是使图像清晰视觉效果好。图像的滤波方法很多,主要可以分为频率域法和空间域法两大类。 1)频率域法 的处理是在图像的某种变换域内,对图像的变换系数值进行运算,然后通过逆变换 阅读全文
posted @ 2013-03-11 12:54 Jun14 阅读(3057) 评论(0) 推荐(0)
摘要:1.IplImage结构typedef struct _IplImage{ int nSize; /* sizeof(IplImage) */ int ID; /* version (=0)*/ int nChannels; /* Most of OpenCV functions support 1,2,3 or 4 channels */ int alphaChannel; /* ignored by OpenCV */ int depth; /* pixel depth in bits:... 阅读全文
posted @ 2013-01-14 13:32 Jun14 阅读(788) 评论(0) 推荐(0)
摘要:1.ROI区域提取只能使用cvRect函数,指定他的起点坐标(x,y),指定长w和宽hcvSetImageROI(pImgROI,cvRect(x,y,w,h));如果想使用不规则的选择区域,推荐使用遮光板(mask)参考下面两篇blog:http://www.cnblogs.com/saintbird/archive/2008/10/27/1305003.htmlhttp://blog.csdn.net/longlongago2000/article/details/29504282.要及时reset,不然图像将一直保持被"裁减"的状态(并不是真的被裁减了)3.ROI中的 阅读全文
posted @ 2012-11-23 15:32 Jun14 阅读(1783) 评论(0) 推荐(0)
摘要:每创建一个将要使用OpenCV的VC Project,都需要给它指定需要的lib。菜单:Project->Settings,然后将Setting for选为All Configurations,然后选择右边的link标签,在Object/library modules附加上cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib cvcam.lib参考自:http://www.opencv.org.cn/index.php/VC6%E4%B8%8B%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AEOpenCV1. 阅读全文
posted @ 2012-11-16 19:30 Jun14 阅读(229) 评论(0) 推荐(0)
摘要:使用C++里面的vector容器std::vector<CvPoint> std::vector<CvPoint> pts1, pts2; pts1.push_back(cvPoint(100, 10)); pts1.push_back(cvPoint(10, 100)); pts1.push_back(cvPoint(200, 200)); pts2.push_back(cvPoint(100, 30)); pts2.push_back(cvPoint(30, 100)); pts2.push_back(cvPoint(150, 200)); ... 阅读全文
posted @ 2012-11-16 19:10 Jun14 阅读(993) 评论(0) 推荐(0)
摘要:因为从AVI采出来的图像有些是Windows位图一样是底左格式即图像像素开始与左下角,这样图像看起来是倒着的,需要进行垂直反转。翻转的判断可以 用IplImage::origin参数得知,origin为1即是翻转图。使用函数cvFlip进行翻转。改出方法为:在"//显示图像" 后面增加下面两句pFrImg->origin=1;pBkImg->origin=1;转自:http://liuxuelian83.blog.163.com/blog/static/8066056620089275249582/ 阅读全文
posted @ 2012-11-10 15:49 Jun14 阅读(288) 评论(0) 推荐(0)
摘要:1.cvCvtColor() 色彩空间转换函数格式:cvCvtColor(源图像,输出图像,code)code是指色彩空间转换的模式.选用CV_BGR2GRAY时表示转换为灰度图片,BGR TO GRAY 原来是这个意思呀.除了能转换成灰度之外还能转换成HSV等类型.OK先了解到这里好了.2.cvSmooth()图像平滑函数格式:cvSmooth(源图像,输出图像,smoothtype)smoothtype是指平滑方法.比如这么写 cvSmooth(pImg8u,pImg8uSmooth,CV_GAUSSIAN,3,0,0) = cvSmooth(pImg8u,pImg8uSmooth);其实 阅读全文
posted @ 2012-11-10 14:12 Jun14 阅读(1372) 评论(0) 推荐(0)
摘要:于老师的书上写的是"cvLine()是绘图函数中最简单的"void cvLine( Cv Arr* array, //画哪儿 CvPoint pt1, //起点 CvPoint pt2, //终点 CvScalar color, //颜色 int thickness = 1 , //多粗 int connectivity=8 // 反走样模式);thickness单位是像素.最后一个参数connectivity,反走样模式=8 : 8连通,较为平滑不会走样=4 : 4连通,斜线会产生重叠,看上去过于粗... 阅读全文
posted @ 2012-11-10 13:50 Jun14 阅读(1178) 评论(0) 推荐(0)
摘要:卷积英文不叫juan ji ,叫convolution [,kɒnvə'luːʃ(ə)n]例句Singh also explains how his piece of code runs in order to execute a convolution. 该研究员还解释代码如何执行卷积操作。抽取自 于,刘老师的<<学习OpenCV>>一书的要点:卷积是变换的基础.一个卷积的功能与却与核的形式.核由一个中心和周围包围着她的数组组成.这个中心叫做anchor point (参考点)计算一个特定点的卷积例子:自己画的,模仿书上的例子这个Sobel倒数的3X3的和,参 阅读全文
posted @ 2012-11-09 15:41 Jun14 阅读(285) 评论(0) 推荐(0)
摘要:在处理图片初始化阶段,常常使用的两个函数.1.cvCreateImage()IplImage* cvCreateImage( CvSize size, int depth, int channels ); 参数说明: size 图像宽、高. 可以计算出需要多少内存空间,不需要提前申请空间.depth 图像元素的位深度,可以是下面的其中之一: IPL_DEPTH_8U - 无符号8位整型 IPL_DEPTH_8S - 有符号8位整型 IPL_DEPTH_16U - 无符号16位整型 IPL_DEPTH_16S - 有符号16位整型 IPL_DEPT... 阅读全文
posted @ 2012-11-01 12:46 Jun14 阅读(490) 评论(0) 推荐(0)
摘要:代码是在<<学习opencv>>的第52页,我直接填写了数字和路径 1 #include <cv.h> 2 #include <highgui.h> 3 // ch3_ex3_12 image_name x y width height add# 4 int main(int argc, char** argv) 5 { 6 7 IplImage* src; 8 cvNamedWindow("Example3_12_pre", CV_WINDOW_AUTOSIZE); 9 cvNamedWindow("Example 阅读全文
posted @ 2012-10-27 15:53 Jun14 阅读(1435) 评论(0) 推荐(0)
摘要:cvLoadImage的第一个参数是指定需要载入的图像的路径,可以是相对路径也可以是绝对路径.不过要注意的是路径的写法和位置位置:如写成1 IplImage* img = cvLoadImage( "Example1.jpg" );就要放在工程文件夹里"D:\master\showPic",而不能放在"D:\master\showPic\Debug"斜杠:1 IplImage* img = cvLoadImage( "D:\\master\\showPic\\Debug\\Example1.jpg" );两个斜杠, 阅读全文
posted @ 2012-10-20 12:55 Jun14 阅读(2834) 评论(0) 推荐(0)