图像金字塔、滑动条、鼠标事件响应

1、拉普拉斯图像金字塔

1.1 原理

 1.2 实现

 

//拉普拉斯图像金字塔
void test1()
{//高斯图像金字塔构建Mat img = imread("F:/testMap/lena.png");vector<Mat> Guass;int level = 3;Guass.push_back(img);for (int i = 0; i < level; i++){Mat guass;pyrDown(Guass[i], guass);Guass.push_back(guass);}//for (int i = 0; i < level; i++)//{//	string name = to_string(i);//	imshow(name, Guass[i]);//}//拉普拉斯图像构建vector<Mat> Lap;for (int i = Guass.size() - 1; i > 0; i--){Mat lap,upGuass;if (i == Guass.size() - 1){Mat down;pyrDown(Guass[i], down);pyrUp(down, upGuass);lap = Guass[i] - upGuass;Lap.push_back(lap);}pyrUp(Guass[i], upGuass); lap = Guass[i - 1] - upGuass; Lap.push_back(lap);}for (int i = 0; i < Guass.size(); i++){string name = to_string(i);Mat guass,lap; guass = Guass[i];lap = Lap[Guass.size()-1 - i];imshow("G" + name,Guass[i]);imshow("L" + name,Lap[Guass.size() -1- i]) ;}
}

2、创建滑动条

 

void callBack(int value, void*);
Mat img;
void test2()
{img = imread("F:/testMap/lena.png");namedWindow("img");imshow("img", img); int value = 100;createTrackbar("百分比","img",&value,600,callBack,0);}void callBack(int value, void*)
{float a = value / 100.0;Mat img2;img2 = img *a;imshow("img", img2);
}

3、鼠标事件响应

3.1 鼠标响应事件函数

 3.2 响应的回调函数

 3.3 鼠标响应事件标志

 3.4 鼠标响应标志

 

//鼠标事件响应
Mat img,imgPoint; //全局的图像
Point prePoint;//前一时刻鼠标的坐标,用于绘制直线
void mouse(int event, int x, int y, int flags, void*);
int test3()
{img = imread("F:/testMap/lena.png");if (!img.data){cout << "请确认输入图像名称是否正确!" << endl;return -1;}img.copyTo(imgPoint);imshow("图像窗口1", img);imshow("图像窗口2", imgPoint);setMouseCallback("图像窗口1", mouse, 0);//鼠标影响waitKey(0);
}void mouse(int event, int x, int y, int flags, void*)
{if (event == EVENT_RBUTTONDOWN)//单击右键{cout << "点击鼠标左键才可以绘制轨迹" << endl;}if (event == EVENT_LBUTTONDOWN)//单击左键,输出坐标{prePoint = Point(x, y);cout << "轨迹起始坐标" << prePoint << endl;}if (event == EVENT_MOUSEMOVE && (flags &EVENT_FLAG_LBUTTON))//鼠标按住左键移动第3章图像基本操作{//通过绘制直线显示鼠标移动轨迹Point pt(x, y);line(img, prePoint, pt, Scalar(255, 255, 255), 2, 5, 0);prePoint = pt;imshow("图像窗口1", img);//通过改变图像像素显示鼠标移动轨迹imgPoint.at<Vec3b>(y, x) = Vec3b(255, 255, 255);imgPoint.at<Vec3b>(y, x - 1) = Vec3b(255, 25, 255);imgPoint.at<Vec3b>(y, x + 1) = Vec3b(255, 25, 255);imgPoint.at<Vec3b>(y + 1, x) = Vec3b(255, 25, 255);imgPoint.at<Vec3b>(y + 1, x) = Vec3b(255, 25, 255);imshow("图像窗口 2", imgPoint);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/13022.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

又曝新作!阿里P9再出山,操作性超强的Spring源码实践

如果你看懂了 Spring 源码&#xff0c;再去看 MyBatis、Spring Security 源码&#xff0c;你会发现这些源码都非常容易&#xff0c;稍微瞅几眼就懂了。 然而源码的学习是一个枯燥的过程&#xff0c;源码解读也是一个枯燥的过程&#xff0c;但是一旦你把源码搞懂了&#xff0c;…

找不到msvcp140.dll解决方法有哪些?那个修复方法更简单

是使用Windows操作系统的计算机时&#xff0c;总是不可避免会遇到系统报错。像计算机提示找不到msvcp140.dll&#xff0c;msvcp140.dll是一个Windows操作系统中的动态链接库文件&#xff0c;它属于Microsoft Visual C Redistributable包的一部分。这个文件包含了一些供C程序使用…

「TCG 规范解读」TCG 规范架构概述(下)

修订历史: 2023.3.4 2023.6.18 2023.7.2 可信计算组织(Ttrusted Computing Group, TCG)是一个非盈利的工业标准组织,它的宗旨是加强不同计算机平台上计算环境的安全性。TCG 于 2003 年春成立,并采纳了由可信计算平台联盟(the Trusted Computing Platform Alliance, TCPA)…

新开普智慧校园系统RCE漏洞复现(0day)

0x01 产品简介 新开普智慧校园体系基于业务、数据双中台理念&#xff0c;建立共享开放能力平台&#xff0c;实现能力开放和服务与数据的全生命周期治理&#xff1b;基于一云多端&#xff0c;混合云服务模式&#xff0c;覆盖管理、生活、教学、科研和社会化服务全场景&#xff0…

Windows下编译安装VTK

本文旨在记录在Windows下编译安装VTK的流程。 零、环境 操作系统Windows 10编译器Visual Studio 2019 CommunityCMake3.24.2Qt5.14.0 一、下载代码 git clone https://github.com/Kitware/VTK.git cd ./VTK/ git checkout -b v9.0.0 v9.0.0 二、编译安装 Where is the so…

ubuntu修改主机名和用户名

参考文章&#xff1a; https://blog.csdn.net/fkmmmm/article/details/127333212 一、修改主机名 sudo vi /etc/hostname2、 sudo vi /etc/hosts3、 sudo reboot二、修改用户名 1、修改所有原用户名&#xff08;如果文件内没有原用户名则不用改 sudo vi /etc/sudoers 2、 s…

Redis主从哨兵模式

IP 服务 用途 10.0.10.45 redis sentinel zookeeper uniquecode 主redis 10.0.10.43 redis sentinel zookeeper uniquecode 从reids-1 10.0.10.44 redis sentinel zookeeper uniquecode 从redis-2 redis主从哨兵分为两部分&#xff0c;redis主从和redis哨兵 redi…

全景感知—让视图上云更便捷,存储更安全

6月15日&#xff0c;由腾讯云主办的“数实共进产业行浙江站”在杭州圆满开展&#xff0c;活动中腾讯云存储高级产品经理张泽南进行了“全景感知&#xff0c;让视图上云更便捷&#xff0c;存储更安全”主题演讲&#xff0c;与行业伙伴深度交流新一代视图计算解决方案&#xff0c…

在uniapp 小程序 vue中报 错 Cannot read property ‘substring‘ of undefined

是因 是因为对字符串使用substring的时候页面中的数据还没有加载 。 错误代码&#xff1a; 可以使用 v-if 修改为&#xff1a;

文件上传+文件包含组合式getshell

实验目的 通过本实验&#xff0c;了解文件包含的特点&#xff0c;掌握图片马的执行方法&#xff0c;文件上传文件包含组合式getshell。 实验环境 操作机&#xff1a;kali 靶机&#xff1a;Windows 2007 用户名/密码&#xff1a;college/360College 实验地址&#xff1a;http…

链表问题——长整数加法运算题解【双向链表】

长整数加法运算 问题描述 假设2个任意长度的整数x、y分别用链表A和B存储&#xff0c;现要求设计一个算法&#xff0c;实现xy。计算结果存储在链表C中。 说明&#xff1a; 链表A、B、C可以是单向链表或双向链表&#xff0c;但由于A和B输出时需要从头至尾遍历&#xff0c;而做…

Android oss policy上传

OSS Policy方式上传 一、 流程对比1.1 普通上传1.2 服务端签名后直传 二、获取上传的policy签名配置三、请求OSS上传文件四、调用应用服务器接口同步文件五、关于上传OSS报错注意事项六、附送链接 一、 流程对比 1.1 普通上传 缺点&#xff1a; 上传慢&#xff1a;用户数据需…