一、实验目的

通过学习 OpenCV 的基本操作,掌握机器视觉的基本原理和实现方法。

二、实验内容

  1. 安装 OpenCV

首先需要安装 OpenCV 库,具体安装方法可以参考 OpenCV 官方文档。安装完成后,需要配置环境变量。

  1. 图像读取

使用 imread 函数读取图像,并显示图像。

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main()
{
    Mat img = imread('test.jpg', IMREAD_COLOR);
    if(img.empty())
    {
        cerr << 'Error: Cannot open image!' << endl;
        return -1;
    }
    namedWindow('Image', WINDOW_NORMAL);
    imshow('Image', img);
    waitKey(0);
    return 0;
}
  1. 图像处理

通过对图像进行处理,可以实现一些特定的功能。例如,可以通过二值化将图像转换为黑白图像,并进行轮廓检测。

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main()
{
    Mat img = imread('test.jpg', IMREAD_GRAYSCALE);
    if(img.empty())
    {
        cerr << 'Error: Cannot open image!' << endl;
        return -1;
    }
    Mat binary;
    threshold(img, binary, 128, 255, THRESH_BINARY);
    vector<vector<Point>> contours;
    findContours(binary, contours, RETR_LIST, CHAIN_APPROX_SIMPLE);
    Mat output = Mat::zeros(binary.size(), CV_8UC3);
    drawContours(output, contours, -1, Scalar(0, 255, 0), 2);
    namedWindow('Image', WINDOW_NORMAL);
    imshow('Image', output);
    waitKey(0);
    return 0;
}
  1. 视频处理

可以使用 OpenCV 读取视频文件,并对视频进行处理。

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main()
{
    VideoCapture cap('test.mp4');
    if(!cap.isOpened())
    {
        cerr << 'Error: Cannot open video file!' << endl;
        return -1;
    }
    while(true)
    {
        Mat frame;
        bool ret = cap.read(frame);
        if(!ret)
        {
            cerr << 'Error: Cannot read frame!' << endl;
            break;
        }
        imshow('Video', frame);
        if(waitKey(30) == 27)
        {
            break;
        }
    }
    cap.release();
    return 0;
}

三、实验总结

通过本次实验,我学习了 OpenCV 的基本操作,掌握了机器视觉的基本原理和实现方法。在实验过程中,我遇到了一些问题,例如图像读取失败,视频播放出错等。通过查阅资料和调试代码,我最终解决了这些问题。通过实验,我对机器视觉有了更深入的理解,并学会了如何使用 OpenCV 实现图像和视频处理。

OpenCV 机器视觉入门实验:图像处理、轮廓检测和视频分析

原文地址: https://www.cveoy.top/t/topic/nYTe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录