基于Opencv的机器视觉入门实验报告
基于Opencv的机器视觉入门实验报告
实验目的
- 掌握Opencv的基本操作和函数的使用。
- 了解机器视觉的基本概念和应用。
- 实现基于Opencv的简单机器视觉应用。
实验内容
- Opencv的安装和环境配置。
- Opencv的基本操作和函数的使用。
- 机器视觉的基本概念和应用。
- 基于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的简单机器视觉应用可以检测图像中的圆形和矩形,并在原图像中标示出来。下图是实验结果示例:

实验结论
本实验通过Opencv的基本操作和函数的使用,了解了机器视觉的基本概念和应用,并实现了一个基于Opencv的简单机器视觉应用。实验结果表明,Opencv具有良好的图像处理和计算机视觉功能,可以实现各种机器视觉应用。
原文地址: https://www.cveoy.top/t/topic/nYUD 著作权归作者所有。请勿转载和采集!