OpenCV
文章平均质量分 58
知行且执行
这个作者很懒,什么都没留下…
展开
-
OpenCV在VS2012下的测试程序
#include "cv.h"#include "highgui.h"int main(){ cv::Mat img = cv::imread("lena.bmp" , 0) ; cv::namedWindow("image") ; cv::imshow("image" , img) ; cv::waitKey() ; return 0 ;}原创 2013-12-31 17:28:57 · 722 阅读 · 0 评论 -
学习OpenCV(七)
使用形态滤波器侵蚀和膨胀图像1、函数cv::erode() 默认使用3*3矩阵处理二值图像,其作用是用核心矩阵处理图像,替换矩阵所覆盖区域的像素值为这个区域的最小值,也即图像处理后白色可能会减少。2、函数cv::dilate() 作用和cv::erode()相反3、自定义核心矩阵cv::Mat element(7,7,CV_8U,cv::Scalar(1))原创 2014-02-19 19:39:11 · 1145 阅读 · 0 评论 -
OpenCV中分割图像的分水岭法
OpenCV中分割图像分水岭法:普通的分水岭方法是吧图像看成一张地势图依次吧不同等级的“水”注入区域内,区域不断扩张,为避免两个不同的区域合并就会修筑一条“大坝”即分水岭。但是这种方法会产生过度分割的情况,为了避免这样的情况,我们可以提前大致的分割一下源图像。比如:(以二值图像为例)如图一:我们分割图像为两个区域白色区域(值255)和灰色区域(128),黑色区域(0)为未知原创 2014-02-20 12:11:39 · 2260 阅读 · 0 评论 -
Corners检测
Harris Corners角点检测使用harris corners检测器:使用OpenCV函数void cornerHarris( InputArray src, OutputArray dst, int blockSize, int ksize, double k,原创 2014-03-05 21:48:59 · 1578 阅读 · 0 评论 -
OpenCV实现好玩的实用的小程序
1、读取AVI文件并显示#include using namespace cv;int main(){ Mat img_src; VideoCapture vido_file("vido.avi"); for (;;) { vido_file >>img_src; imshow("video_src",img_src);原创 2014-03-06 14:50:42 · 4016 阅读 · 0 评论 -
OpenCV读取视频流操作
VS2012 + OpenCV2.4.4读取视频流操作:见代码注释:#include #include int main(){ //cv::VideoCapture capture("D:/Development/OpenCV/images/bike.avi") ; cv::VideoCapture capture ; //capture.open("D:/Developmen原创 2014-03-09 21:16:46 · 3380 阅读 · 1 评论 -
OpenCV中Mat与IplImage和CvMat类型之间的相互转换
OpenCV中Mat与IplImage和CvMat类型之间的相互转换 转载自:http://blog.csdn.net/wangwanguo08/article/details/7775301 Mat类型较CvMat和IplImage有更强的矩阵运算能力,支持常见的矩阵运算(参照Matlab中的各种矩阵运算),所以将IplImage类型和CvMat类型转换为M转载 2014-03-29 13:23:49 · 740 阅读 · 0 评论 -
OpenCV鼠标控制窗口大小(使用1.0vison)
开发环境:VS2012 + OpenCV2.4 (OpenCV语句使用 旧版本形式)功能:使用鼠标控制三个窗口的放大与缩小使用见程序:#include #include #include #include using namespace std ;using namespace cv ;IplImage *vis_image ;//可见光图片IplImage *原创 2014-03-19 23:12:59 · 1270 阅读 · 0 评论 -
OpenCV2中访问Mat元素
1、使用at访问/**OpenCV2中Mat的at操作访问矩阵元素**/#include using namespace std ;using namespace cv ;int main(){ Mat image = imread("forest.jpg") ; imshow("image" , image) ; //三通道图像,at(y , x)索引是先行(y原创 2014-03-22 23:01:09 · 2225 阅读 · 0 评论 -
OpenCV中Mat操作clone() 与copyto()的区别
// Mat is basically a class with two data parts: the matrix header and //a pointer to the matrix containing the pixel values #include #include using namespace std ;using namespace cv ;int main原创 2014-04-28 14:40:21 · 30410 阅读 · 0 评论 -
Hough Transform(霍夫变换)检测Circle(圆)的几种方法
使用霍夫变换检测图像中的直线,圆等图形是利用图形函数的从直角坐标系到极坐标系的转换。比如检测直线中,直线方程y = k * x + b , 直线上的所有点都对应着参数( k , b),给定一个点(x0 , y0)我们能够得到通过这个点的所有直线的参数(k , b),易知同一条直线上的点对应的参数(k , b)是相同的利用此信息,我们建立k , b 的累加器,依次计算图像中提取出的原创 2014-03-01 17:09:44 · 9045 阅读 · 0 评论 -
OpenCV中Hough transform(霍夫变换)
霍夫变换所基于的公式:P = X * COS(θ) + Y *SIN(θ) 首先,明确图像坐标,在图像中横轴是从左向右增加,纵轴是从上向下增加,原点在左上角,在使用霍夫变换检测图像中的直线时,P是原点到直线的距离,θ是原点到直线垂线和X轴正方向在顺时针方向的夹角。霍夫变换思想: 我们建立一个累积数组acc[][],对于每一个给定的图像上的点(X0 , Y0)有原创 2014-02-27 09:13:21 · 1546 阅读 · 0 评论 -
OpenCV滤波器
中值滤波器函数:void medianBlur( InputArray src, OutputArray dst, int ksize );参数:src:输入图像dst:输出结果ksize:尺寸说明:中值滤波一般不会用的最大值与最小值,在处理salt点图像时可以体现其效果方框滤波器函数:blur( InputArray src, OutputArray ds原创 2014-02-22 12:36:49 · 1339 阅读 · 0 评论 -
学习OpenCV(三)
/**本程序主要学习图像的简单的处理,过滤操作*第一种方法使用自己写的算法*第二种使用OpenCV自带的函数sharpen2D()*注意学习 自定义矩阵的方法*/#include "cv.h"#include "highgui.h"#include "..\..\..\..\..\..\opencv\build\include\opencv2\imgproc\imgproc.hp原创 2014-01-02 10:59:13 · 1064 阅读 · 0 评论 -
学习OpenCV(四)
/**功能:图像叠加操作**/#include "highgui.h"int main(){ cv::Mat image1 , image2 ; cv::Mat result ; image1 = cv::imread("D:/Development/OpenCV/images/boldt.jpg") ; image2 = cv::imread("D:/Development原创 2014-01-02 11:02:47 · 904 阅读 · 0 评论 -
学习OpenCV(一)
/**功能:读图像,展示图像**/#include "cv.h"#include "highgui.h"int main(){ cv::Mat img ; std::cout << "size : " << img.size().height << " , " << img.size().width << std::endl ; img = cv::imread(原创 2014-01-02 10:57:04 · 741 阅读 · 0 评论 -
学习OpenCV(二)
/**本程序是学会使用:1、用下标访问像素,2、使用迭代器访问像素 , 3、使用指针访问像素*4、把图像写入磁盘***/#include "highgui.h"//访问元素用下标void salt(cv::Mat &img , int n){ for(int k = 0 ; k < n ; ++ k) { int i = rand() % img.cols ; i原创 2014-01-02 10:58:10 · 770 阅读 · 0 评论 -
VS2012中MFC使用Picture Control显示OpenCV处理的图像
VS2012中MFC中使用Picture Control控件显示OpenCV2.4.4版本中的cv::Mat类型的图片。在高版本的OpenCV中没有CvvImage类,我们可以自己添加,下载CvvImage.h和CvvImage.cpp文件拷贝到工程目录下,通过向工程中添加“现有项”把这两个文件添加工程。我们需要用到CvvImage中的两个函数CopyOf和DrawToHDC,CopyOf原创 2014-01-11 23:03:14 · 5202 阅读 · 0 评论 -
学习OpenCV(五)
直方图涉及的函数:int histSize[1] ; float hranges[2] ; const float * ranges[1] ; int channels[1] ;函数:cv::calcHist()获取图像直方图cv::calcHist(&image,1, // histogram of 1 image onlychannel原创 2014-01-12 00:00:46 · 792 阅读 · 0 评论 -
学习OpenCV(六)
使用OpenCV有关直方图的几个函数:函数一:cv::threshold(srcImage, desImage, threshold, malVal, cv::THRESH_BINARY);在最后一个参数为cv::THERSH_BINARY时本函数实现把源图像转换成二值图像,门限值为threshold,最大值为malVal函数二:cv::calcBackProject(原创 2014-01-12 22:32:52 · 938 阅读 · 0 评论 -
OpenCV图像分割cv::grabCut()函数
函数:void grabCut( InputArray img, InputOutputArray mask, Rect rect, InputOutputArray bgdModel, InputOutputArray fgdModel, int iterCount, int mo原创 2014-02-21 17:56:10 · 7784 阅读 · 0 评论 -
OpenCV图像缩放操作
函数cv::pyrDown()和函数cv::pyrUp()是按照2的倍数缩放的函数cv::resize()是按照任意指定值缩放//使用函数cv::pyrDown() 和 cv::pyrUp() cv::Mat reducedImage ; cv::pyrDown(image , reducedImage) ; cv::imshow("Reduce" , reducedImage) ;原创 2014-02-22 12:43:11 · 2371 阅读 · 0 评论 -
OpenCV中findContours函数的使用
从二值图像中找出对象的轮廓:OpenCV中函数findContours()用于中对象的轮廓,有两种形式:第一种:void findContours( InputOutputArray image, OutputArrayOfArrays contours, int mode, int method, Point offset原创 2014-03-05 12:02:03 · 35911 阅读 · 0 评论