快速上手OpenCV小程序

简介: 快速上手OpenCV小程序

一、图像显示

说明:用imread函数载入到新版本的图像存储数据结构Mat类(后期会详细介绍)中,然后用imshow函数显示即可。

#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{
  //载入图片
  Mat src = imread("D:\\12.jpg");
  //显示图片
  imshow("原始图", src);
  waitKey(0);
}

二、图像腐蚀:腐蚀即用图像中的暗色部分“腐蚀”掉图像中的高亮部分。

说明:程序首先载入和显示一幅图像,然后定义一个Mat类型的变量来获取 getStructuringElement函数的返回值,这个函数发返回值指的是定性质和尺寸的结构元素。调用erode()函数进行图像腐蚀操作。

//进行腐蚀操作
  Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
  Mat dstImage;
  erode(src, dstImage, element);
  imshow("效果图", dstImage);

三、图像模糊:对图像进行均值滤波操作,模糊一幅图像。

//进行均值滤波操作
  Mat dstImage;
  blur(src, dstImage, Size(7, 7));
  imshow("均值滤波", dstImage);

四、canny边缘检测

说明:载入图像之后,将图像转化成灰度图,再用blur函数进行图像模糊以降噪,如何用canny函数进行边缘检测

#include<opencv2/opencv.hpp> 
#include<opencv2/highgui/highgui.hpp>//opencv highgui模块头文件
#include<opencv2/imgproc/imgproc.hpp>//图像处理头文件
using namespace cv;
int main()
{
  //载入图片
  Mat src = imread("D:\\12.jpg");
  //显示图片
  imshow("原始图", src);
  Mat dstImage, edge, grayImage;//参数定义
  //创建与src同类型和大小的矩阵
  dstImage.create(src.size(), src.type());
  //将原始图转化为灰度图
  cvtColor(src, grayImage, COLOR_BGR2GRAY);
    imshow("灰度图", grayImage);
  //使用3x3内核来降噪
  blur(grayImage, edge, Size(3, 3));
  //运行Canny算子
  Canny(edge, edge, 3, 9, 3);
  //显示效果
  imshow("边缘检测效果图", edge);
  waitKey(0);
}

五、读取并播放视频

说明:通过对VideoCapture类的分享,可以发现利用它读入视频的方法一般有以下两种

(1)先实例化再初始化

VideoCapture capture;
capture.open("1.avi");
类似:int a; a=1;

(2)在实例化的同时进行初始化

VideoCapture capture("1.avi");
类似:int a=1;

当视频读入到VideoCapture类对象之后,紧接着可以用一个循环将每一帧显示出来

while(1)
{
    //定义Mat变量,存储每一帧的图像
    Mat frame;
    //读取当前帧
    capture>>frame;
    //显示当前帧
    imshow;
    //延时30ms
    waitKey(30);
}


程序源码:

#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{
  //读入视频
  VideoCapture capture("D:\\1.mp4");
  //循环显示每一帧
  while (1)
  {
    //定义Mat变量,存储每一帧的图像
    Mat frame;
    //读取当前帧
    capture >> frame;
    //显示当前帧
    imshow("读取视频", frame);
    //延时30ms
    waitKey(30);
  }
  return 0;
}

相关文章
|
4月前
|
存储 Java Android开发
OpenCV3 安卓应用编程:1~6 全
OpenCV3 安卓应用编程:1~6 全
19 0
|
4月前
|
存储 算法 C语言
OpenCV 即时入门(全)
OpenCV 即时入门(全)
84 0
|
5月前
|
机器学习/深度学习 算法 机器人
opencv介绍及环境搭建
opencv介绍及环境搭建
48 0
|
9月前
|
计算机视觉
基于opencv的Qt开发项目
基于opencv的Qt开发项目
|
存储 程序员 测试技术
软件测试|一文带你入门Python图片处理神器Pillow
软件测试|一文带你入门Python图片处理神器Pillow
163 0
软件测试|一文带你入门Python图片处理神器Pillow
|
计算机视觉 C++ Python
超详细OpenCV 教学1(python语言版本)---安装OpenCV
超详细OpenCV 教学1(python语言版本)---安装OpenCV
309 0
|
算法 计算机视觉 索引
数字图像处理OpenCV——实验一 熟悉OpenCV环境和基本操作
实验一 熟悉OpenCV环境和基本操作 熟悉OpenCV运行环境,了解图像的基本操作及直方图均衡化。 利用OpenCV产生一幅图像,尺寸为200*240,三通道,其中某一块为红色,其它皆为黑色,示例图如下。 对一副图像进行直方图均衡化处理。要求自行编写直方图均衡化函数,实现图像灰度均衡的算法步骤如下: (1) 统计直方图数组,用一个数组p记录p[i]; (2) i从1开始,令S[i]=S[i-1]+p[i],S[0]=p[0]; (3) 一个数组L记录新的S索引值,即令L[i]=S[i]*(256-1);
283 0
数字图像处理OpenCV——实验一 熟悉OpenCV环境和基本操作
|
计算机视觉 Python
Python-OpenCV图像处理-00-OpenCV环境的搭建及测试
Python-OpenCV图像处理-00-OpenCV环境的搭建及测试
81 0
Python-OpenCV图像处理-00-OpenCV环境的搭建及测试
|
Python 计算机视觉
OpenCV教程拓展挑战:PyQt编写GUI界面
如果你也有想分享的干货,可以登录天池实验室(notebook),包括赛题的理解、数据分析及可视化、算法模型的分析以及一些核心的思路等内容。
2025 0
|
计算机视觉 Unix
(5编译使用最新opencv)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练   1综述http://www.cnblogs.com/jsxyhelu/p/7907241.html 2环境架设http://www.
1306 0