基于Opencv的机器视觉入门实验报告

实验目的

  1. 掌握Opencv的基本操作和函数的使用。
  2. 了解机器视觉的基本概念和应用。
  3. 实现基于Opencv的简单机器视觉应用。

实验内容

  1. Opencv的安装和环境配置。
  2. Opencv的基本操作和函数的使用。
  3. 机器视觉的基本概念和应用。
  4. 基于Opencv的简单机器视觉应用实现。

实验步骤

1. Opencv的安装和环境配置

本实验使用的是Opencv 3.4.1版本,安装步骤如下:

(1) 下载Opencv 3.4.1源代码 (2) 解压源代码到指定目录下 (3) 进入解压后的目录,执行以下命令:

cmake .
make
sudo make install

(4) 安装完成后,将Opencv的库文件路径添加到环境变量中

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

2. Opencv的基本操作和函数的使用

Opencv的基本操作和函数包括图像的读取、显示、保存等操作,以及图像处理函数的使用。

(1) 图像的读取、显示和保存

读取图像:

Mat img = imread('test.jpg');

显示图像:

imshow('test', img);

保存图像:

imwrite('test_out.jpg', img);

(2) 图像处理函数的使用

图像处理函数包括图像的滤波、二值化、边缘检测等操作。例如,使用高斯滤波函数可以对图像进行平滑处理:

GaussianBlur(img, img, Size(3, 3), 0, 0);

使用二值化函数可以将图像转换为黑白图像:

cvtColor(img, gray, COLOR_BGR2GRAY);
threshold(gray, binary, 100, 255, THRESH_BINARY);

使用边缘检测函数可以检测图像中的边缘:

Canny(img, edges, 50, 150);

3. 机器视觉的基本概念和应用

机器视觉是一种通过计算机视觉技术实现对图像和视频的识别、分析和处理的技术。其应用广泛,包括物体识别、运动跟踪、图像搜索等。

机器视觉的基本操作包括图像采集、图像处理、特征提取和分类等。

4. 基于Opencv的简单机器视觉应用实现

本实验实现了一个基于Opencv的简单机器视觉应用,用于检测图像中的圆形和矩形。

(1) 读取图像:

Mat img = imread('test.jpg');

(2) 将图像转换为灰度图像:

cvtColor(img, gray, COLOR_BGR2GRAY);

(3) 使用高斯滤波函数进行平滑处理:

GaussianBlur(gray, gray, Size(9, 9), 2, 2);

(4) 使用霍夫圆变换函数检测圆形:

vector<Vec3f> circles;
HoughCircles(gray, circles, HOUGH_GRADIENT, 1, gray.rows/8, 200, 100, 0, 0);

(5) 使用霍夫直线变换函数检测矩形:

vector<Vec4i> lines;
HoughLinesP(edges, lines, 1, CV_PI/180, 50, 50, 10);

(6) 在原图像中绘制圆形和矩形:

for(size_t i=0; i<circles.size(); i++) {
    Point center(cvRound(circles[i][0]), cvRound(circles[i][1]));
    int radius = cvRound(circles[i][2]);
    circle(img, center, radius, Scalar(0, 0, 255), 3, LINE_AA);
}
for(size_t i=0; i<lines.size(); i++) {
    line(img, Point(lines[i][0], lines[i][1]), Point(lines[i][2], lines[i][3]), Scalar(0, 255, 0), 3, LINE_AA);
}

(7) 显示和保存结果图像:

imshow('result', img);
imwrite('result.jpg', img);

实验结果

本实验实现的基于Opencv的简单机器视觉应用可以检测图像中的圆形和矩形,并在原图像中标示出来。下图是实验结果示例:

image.png

实验结论

本实验通过Opencv的基本操作和函数的使用,了解了机器视觉的基本概念和应用,并实现了一个基于Opencv的简单机器视觉应用。实验结果表明,Opencv具有良好的图像处理和计算机视觉功能,可以实现各种机器视觉应用。

基于Opencv的机器视觉入门实验报告

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

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