
OpenCV
yeler082
本科就读于新疆大学软件学院,现阶段在西安交通大学攻读软件工程硕士,研方向为计算机视觉(图像识别、目标检测)
展开
-
1.1OpenCV读取图像
#include using namespace cv;int main() { Mat img = cv::imread("D:\\opencv\\pic\\index.jpg");//读取图片,这里需要写出对应的文件目录 imshow("test", img);//显示读取的图片 waitKey();//等待按键 return 0;}运行结果:原创 2017-10-06 18:59:49 · 534 阅读 · 0 评论 -
6.4OpenCV形态学图像处理:开运算、闭运算、形态学梯度、顶帽、黑帽
一、案例分析1、开运算开运算(Opening Operation),其实就是先腐蚀后膨胀的过程。其数学表达式如下:开运算可以用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。//-----------------------------------【头文件包含部分】------------------------------------原创 2017-10-08 09:11:44 · 3022 阅读 · 0 评论 -
6.5OpenCV双边滤波
基本原理: 双边滤波器是针对高斯平滑的提升版本,高斯平滑根据像素邻域的距离决定权重,生成权重的函数为高斯函数,所以叫高斯平滑或者高斯滤波,效果是使图像模糊,并一定程度上的保存边缘,双边滤波的改进是增加了灰度值的影响,也就是邻域的像素灰度值如果和中心像素的灰度值越接近,那么权值在高斯权值的基础上在加上一个相对较大的权值,相反,如果灰度差很大,将会给已生成的高斯模板对应的位置加上一个小的权值,以原创 2017-10-07 15:07:42 · 1524 阅读 · 0 评论 -
6.4OpenCV中值滤波
无论是直接获取的灰度图像,还是由彩色图像转换得到的灰度图像,里面都有噪声的存在,噪声对图像质量有很大的影响。进行中值滤波不仅可以去除孤点噪声,而且可以保持图像的边缘特性,不会使图像产生显著的模糊,比较适合于实验中的人脸图像。 中值滤波是一种非线性的信号处理方法,因此中值滤波器也就是一种非线性的滤波器。在一定条件下,其可以克服线性滤波器处理图像细节模糊的问题,而且它对滤除脉冲干扰和图像扫描噪原创 2017-10-07 13:17:32 · 1002 阅读 · 0 评论 -
2.3OpenCV程序计时
#include #include using namespace std;using namespace cv;void main(){ int s = 0; double time0 = static_cast(getTickCount());//取得开始时间 for (size_t i = 0; i < 100000; i++) { s += i; } time0原创 2017-10-06 20:50:03 · 411 阅读 · 0 评论 -
2.2OpenCV格式化输出矩阵
#include #include using namespace std;using namespace cv;int main(){ Mat M(2,2,CV_8UC3,Scalar(0,0,255));//两行两列 cout << "M= "<< " " << M << endl << endl; cout << "****************************原创 2017-10-06 20:46:00 · 605 阅读 · 0 评论 -
2.1OpenCV改变图像颜色
#include #include using namespace std;using namespace cv;void main(){ Mat img = imread("D:\\opencv\\pic\\girl3.jpg", 1); Mat dsn; cvtColor(img, dsn, COLOR_RGB2Lab);//改变图片的颜色 imshow("soource"原创 2017-10-06 19:42:58 · 3974 阅读 · 0 评论 -
1.6OpenCV读取摄像头并做边缘检测
#include "opencv2/opencv.hpp"using namespace cv;void main(){ //从摄像头读入视频 VideoCapture capture(0); Mat edges; //循环显示每一帧 while (1) { Mat frame; capture >> frame; cvtColor(frame, edges, CO原创 2017-10-06 19:35:56 · 926 阅读 · 0 评论 -
1.5OpenCV读取摄像头
#includeusing namespace cv;void main(){ //从摄像头读入视频 VideoCapture capture(0); //循环显示每一帧 while (1) { Mat frame; capture >> frame; imshow("读取摄像头视频",frame); waitKey(30);//延时30毫秒符合真实的实际动作原创 2017-10-06 19:31:45 · 406 阅读 · 0 评论 -
1.4OpenCV边缘检测
#include "cv.h"#include#include "highgui.h"#include "iostream"using namespace std;//载入一副图像并进行平滑处理void image_handel(IplImage *image){ //create two window to show some images of inputing or outp原创 2017-10-06 19:22:54 · 505 阅读 · 0 评论 -
1.3OpenCV播放视频
#include "highgui.h"int main(int argvc, char **argv){ cvNamedWindow("example1", CV_WINDOW_AUTOSIZE);//创建一个窗口 CvCapture *capture = cvCreateFileCapture("D:\\opencv\\video\\cplus.wmv");//通过参数设置确定要读取的原创 2017-10-06 19:11:57 · 450 阅读 · 0 评论 -
1.2OpenCV图像腐蚀
#include// highgui头文件#includeusing namespace cv;int main(){ Mat srcImg = imread("D:\\opencv\\pic\\mogu1.jpg"); imshow("图像腐蚀前",srcImg); //开始腐蚀 Mat element = getStructuringElement(MORPH_ELLIPSE,原创 2017-10-06 19:06:02 · 532 阅读 · 0 评论 -
6.5OpenCV漫水填充
一、定义所谓漫水填充,简单来说,就是自动选中了和种子点相连的区域,接着将该区域替换成指定的颜色,这是个非常有用的功能,经常用来标记或者分离图像的一部分进行处理或分析.漫水填充也可以用来从输入图像获取掩码区域,掩码会加速处理过程,或者只处理掩码指定的像素点。以此填充算法为基础,类似photoshop的魔术棒选择工具就很容易实现了。漫水填充(FloodFill)是查找和种子点联通的颜色相同转载 2017-10-09 08:51:11 · 440 阅读 · 0 评论