快速上手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;
}

相关文章
|
6月前
|
存储 Java Android开发
OpenCV3 安卓应用编程:1~6 全
OpenCV3 安卓应用编程:1~6 全
45 0
|
6月前
|
存储 计算机视觉 Python
搭建Python-OpenCV开发环境(包括Python、Pycharm、OpenCV下载 图文解释)
搭建Python-OpenCV开发环境(包括Python、Pycharm、OpenCV下载 图文解释)
872 0
|
5月前
|
计算机视觉
【轻松入门】OpenCV4.8 + QT5.x开发环境搭建
【轻松入门】OpenCV4.8 + QT5.x开发环境搭建
80 0
【轻松入门】OpenCV4.8 + QT5.x开发环境搭建
|
6月前
|
存储 算法 C语言
OpenCV 即时入门(全)
OpenCV 即时入门(全)
117 0
|
C++ Python
Python+QT美颜工具源码
Python+QT美颜工具源码
172 0
Python+QT美颜工具源码
|
计算机视觉
基于opencv的Qt开发项目
基于opencv的Qt开发项目
Python Qt GUI设计:做一款串口调试助手(实战篇—1)
Python Qt GUI设计系列博文终于到了实战篇,本篇博文将贯穿之前的基础知识点实现一款串口调试助手。
|
Python
Tkinter模块GUI界面化编程实战(三)——2048小游戏(含详解及完整源码、完整程序下载链接)
Tkinter模块GUI界面化编程实战(三)——2048小游戏(含详解及完整源码、完整程序下载链接)
198 0
|
Python
Tkinter模块GUI界面化编程实战(五)——大鱼吃小鱼游戏(含超详解及完整源码、完整程序免费下载链接)
Tkinter模块GUI界面化编程实战(五)——大鱼吃小鱼游戏(含超详解及完整源码、完整程序免费下载链接)
163 0
|
前端开发 索引 Python
Tkinter模块GUI图形化编程实战(八)——中国象棋(含超详解及完整源码、完整程序免费下载链接)
Tkinter模块GUI图形化编程实战(八)——中国象棋(含超详解及完整源码、完整程序免费下载链接)
177 0