02 快速上手OpenCV
来源:互联网 发布:法国制造业年度数据 编辑:程序博客网 时间:2024/06/14 14:50
一、图像显示
操作请看00节,这里只放效果图:
二、图像腐蚀
注:腐蚀,即用图像中的暗色部分“腐蚀”掉图像中高亮部分。
代码:
#include#include //OpenCV highgui 模块头文件#include //OpenCV图像处理头文件using namespace cv;int main(int argc, char* argv[]){// 载入一张图片 Mat srcImage = imread("1.jpg");// 在窗口中显示原画 imshow("【原图】腐蚀操作", srcImage);//进行腐蚀操作Mat element = getStructuringElement(MORPH_RECT, Size(15,15));Mat dstImage;erode(srcImage,dstImage,element);//显示效果图imshow("【效果图】腐蚀操作", dstImage);// 等待任意按键按下waitKey(0);return 0;}
三、图像模糊
代码:#include #include //OpenCV highgui 模块头文件#include //OpenCV图像处理头文件using namespace cv;int main(int argc, char* argv[]){// 载入一张图片 Mat srcImage = imread("1.jpg");// 显示原始图 imshow("【原图】腐蚀操作均值滤波", srcImage);//进行均值滤波操作Mat dstImage;blur(srcImage, dstImage, Size(7, 7));//显示效果图imshow("【效果图】均值滤波", dstImage);// 等待任意按键按下waitKey(0);return 0;}
效果:![](http://img.blog.csdn.net/20170418125223456?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3pnMTM1NDg5MzAxODY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
#include#include //OpenCV highgui 模块头文件#include //OpenCV图像处理头文件using namespace cv;int main(int argc, char* argv[]){// 载入一张图片 Mat srcImage = imread("1.jpg");// 显示原始图 imshow("【原图】腐蚀操作均值滤波", srcImage);//进行均值滤波操作Mat dstImage;blur(srcImage, dstImage, Size(7, 7));//显示效果图imshow("【效果图】均值滤波", dstImage);// 等待任意按键按下waitKey(0);return 0;}
效果:
四、Canny边缘检测
#include#include //OpenCV highgui 模块头文件#include //OpenCV图像处理头文件using namespace cv;int main(int argc, char* argv[]){//【0】载入原始图 Mat srcImage = imread("1.jpg"); //工程目录下应该有一张名为1.jpg的素材图imshow("【原始图】Canny边缘检测", srcImage); //显示原始图 Mat dstImage, edge, grayImage;//参数定义//【1】创建与src同类型和大小的矩阵(dst)dstImage.create(srcImage.size(), srcImage.type());//【2】将原图像转换为灰度图像cvtColor(srcImage, grayImage, COLOR_BGR2GRAY);//【3】先用使用 3x3内核来降噪blur(grayImage, edge, Size(3, 3));//【4】运行Canny算子Canny(edge, edge, 3, 9, 3);//【5】显示效果图 imshow("【效果图】Canny边缘检测", edge);waitKey(0);return 0;}
效果:
五、读取并播放视屏
注释:
VideoCapture capture("1.avi"); 和VideoCapture capture;capture.open("1.avi");是一样的!
类似于int a;a=1;<==>int a = 1;
代码:
#include#include using namespace cv;int main(int argc, char* argv[]){//【1】载入视频 VideoCapture capture("1.avi");//【2】循环显示每一帧while (1) {Mat frame;//定义一个Mat变量,用于存储每一帧的图像capture >> frame;//读取当前帧imshow("读取视频",frame);//显示当前帧waitKey(30);//延时30ms}return 0;}
效果:
六、调用摄像头采集图像
VideoCapture capture("1.avi");改成VideoCapture capture(0);就表示调用摄像头了;效果:
调用摄像头配合canny边缘检测:
代码:
#include#include using namespace cv;int main(int argc, char* argv[]){//从摄像头读入视频VideoCapture capture(0);//定义参数Mat edges;//循环显示每一帧while (1) {//【1】读入图像Mat frame;//定义一个Mat变量,用于存储每一帧的图像capture >> frame;//读取当前帧//【2】将原图像转化为灰度图像cvtColor(frame, edges, CV_BGR2GRAY);//转化BGR彩色图为灰度图//【3】使用3X3内核来降噪(2x3+1=7)blur(edges, edges, Size(7, 7));//进行模糊处理//【4】进行canny边缘检测并显示Canny(edges, edges, 0, 30, 3);imshow("被canny后的视频",edges);//显示经过处理后的当前帧if(waitKey(30) >= 0) break;//延时30ms}return 0;}
效果:
0 0
- 02 快速上手OpenCV
- 【openCV入门之二】 快速上手
- opencv从零开始——0. 快速上手
- 《OpenCV3编程入门》学习笔记二:快速上手OpenCV
- 快速上手
- Android+OpenCV上手程序
- 图像识别(3)——《OpenCV3编程入门-毛星云》第一部分 快速上手OpenCV
- Eclipse快速上手指南
- Eclipse快速上手指南
- Pro*C快速上手
- Eclipse快速上手指南
- Eclipse快速上手指南
- 传真机快速上手
- 快速上手Cruisecontrol
- delphi之快速上手
- [AppFuse]快速上手
- JasperReports快速上手
- MyEclipse Struts 快速上手
- sublime
- BZOJ 3495 [2-SAT]
- android音频系统解析
- html表单
- 剑指offer-面试题 16:反转链表
- 02 快速上手OpenCV
- 数值计算:一重积分计算的C++实现
- MATLAB中已知圆心和半径画圆
- Codeforces Round #409 div2 D
- javascript基础编程应用表单验证
- Flask开发(1)
- 《计算机网络原理》总结<一>---整体认识
- 关于DEV中的GridControl使用之GridView
- spring学习(1)