计算机视觉实验报告 计算机视觉是指计算机模拟人眼对视觉信息的处理和理解过程,涉及到图像处理、模式识别、机器学习等技术领域。本实验报告将对计算机视觉中的实验进行详细的介绍和解释。 一、任务 1:树的复制移动 在本实验中,我们将使用OpenCV库来实现树的复制移动。我们需要读取树的图像,然后使用复制移动函数将树从右侧复制到左侧。复制移动函数的核心代码如下所示: ```cpp void copy_color(Mat &image) { for (int j = 190; j < 506; j++) { uchar* data = image.ptr<uchar>(j); for (int i = 190; i < 995; i++) { data[i] = data[1440 + i]; } } } ``` 这个函数将树的右侧部分复制到左侧,形成新的树形图像。然后,我们使用移除背景函数来移除树的背景。 ```cpp void RemoveBackground(Mat& src, Mat& dst) { int channels = src.channels(); int width = src.cols * channels; int height = src.rows; for (int i = 0; i < height; i++) { uchar* sdata = src.ptr<uchar>(i); uchar* ddata = dst.ptr<uchar>(i); for (int j = 0; j < width; j += channels) { if (sdata[j] < 230 && sdata[j + 1] < 230 && sdata[j + 2] < 230) { ddata[j] = sdata[j]; ddata[j + 1] = sdata[j + 1]; ddata[j + 2] = sdata[j + 2]; } } } } ``` 这个函数将树的背景移除,并将树的前景部分保留下来。我们将树的前景部分贴到原图上,形成最终的图像。 二、任务 2:混合图像生成 在本实验中,我们将使用OpenCV库来生成混合图像。混合图像是指将两个图像进行加权平均以生成新的图像。在这里,我们将使用猫和狗的图像来生成混合图像。 ```cpp int main() { Mat src1, src2, dst; src1 = imread("cat.jpg"); src2 = imread("dog.jpg"); double alpha = 0.5; if (src1.rows == src2.rows && src1.cols == src2.cols && src1.type() == src2.type()) { addWeighted(src1, alpha, src2, (1.0 - alpha), 0.0, dst); } namedWindow("cat"); imshow("cat", src1); namedWindow("dog"); imshow("dog", src2); namedWindow("blend demo"); imshow("blend demo", dst); waitKey(0); return 0; } ``` 这个函数将猫和狗的图像进行加权平均,以生成混合图像。我们将生成的混合图像显示出来。 实验结果截图如图所示。从结果可以看出,我们成功地实现了树的复制移动和混合图像生成。
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 毕业设计Jupyter Notebook基于深度网络的垃圾识别与分类算法研究项目源代码,用PyTorch框架中的transforms方法对数据进行预处理操作,后经过多次调参实验,对比不同模型分类效果
- 1221额的2的2的2额
- 基于python第三方库pybloom-live实现的redis布隆过滤器类
- 快速排序算法在Rust语言的实现及其优化
- 微藻检测10-YOLO(v5至v11)、COCO、CreateML、Paligemma、TFRecord、VOC数据集合集.rar
- 人工智能领域计算断层成像技术研究最新进展综述
- 基于java的公司固定资产管理系统.doc
- 柑橘多种疾病类型图像分类数据集【已标注,约1,000张数据】
- 2025年 UiPath AI和自动化趋势:代理型AI的崛起及企业影响
- 基于Java的环境保护与宣传网站的设计与实现毕业论文.doc
评论0