C++怎么实现图像的平移
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇内容主要讲解"C++怎么实现图像的平移",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++怎么实现图像的平移"吧!图像的平移移动是将图像看作一个整体,
千家信息网最后更新 2025年12月02日C++怎么实现图像的平移图像的平移 中间扩张
水平栅条特效
本篇内容主要讲解"C++怎么实现图像的平移",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++怎么实现图像的平移"吧!
移动是将图像看作一个整体,显示时不能像扫描那样,扫描方式有些像打开一副画,例如显示上部分的时候,下部分可以不现实,而移动则可以看成一块木板画,显示时必须按物理顺序进行,例如从上向下平移时,必须先显示下面的图像,后显示上面的图像,因此平移的算法比扫描难一些。
平移是一复制的方法显示图像的,每显示一次,复制的行数就增加一行,直至显示完成。
//移动显示void Mobile_display(){ //读取图片 Mat srcImage, dstImage; srcImage = imread("2.jpg"); dstImage = Mat(srcImage.size(), CV_8UC3); imshow("原图", srcImage); //定义变量 Mat roiImage; int ImageHeigth = srcImage.rows; int ImageWidth = srcImage.cols; namedWindow("移动显示"); for (int i = 1; i < ImageWidth; i++) {//步长为1 roiImage = srcImage(Rect(ImageWidth-i, 0, i, ImageHeigth)); roiImage.copyTo(dstImage(Rect(0, 0, i, ImageHeigth))); imshow("移动显示", dstImage); waitKey(5); } waitKey(0);}动图
当我们打开电视机时,都有这样的感觉:电视图像是从屏幕中间开始,向上下两个方向展开的,这种效果就是中间扩张。中间扩张特效显示的原理其实并不难,在显示的时候,先将图像分成两部分,将中间分界处显示在屏幕中央,并快速向上向下扫描图像,最后将图像完整的显示在屏幕上,这样人们因为视觉生理的特点就会看到中间扩张的效果。
//中间扩张void Middle_expansion(){//读取图片Mat srcImage, dstImage;srcImage = imread("2.jpg");dstImage = Mat(srcImage.size(), CV_8UC3);imshow("原图", srcImage);//定义变量Mat roiImage;int ImageHeigth = srcImage.rows;int ImageWidth = srcImage.cols;namedWindow("中间扩张");for (int i = 1; i <= ImageHeigth/2; i++) {//步长为1roiImage = srcImage(Rect(0, ImageHeigth / 2 - i, ImageWidth, i));roiImage.copyTo(dstImage(Rect(0, ImageHeigth / 2 - i, ImageWidth, i)));roiImage = srcImage(Rect(0, ImageHeigth / 2, ImageWidth, i));roiImage.copyTo(dstImage(Rect(0, ImageHeigth / 2, ImageWidth, i)));imshow("中间扩张", dstImage);waitKey(5);}waitKey(0);}
动图
栅条特效分为水平栅条和垂直栅条,其效果如同将两手交叉的过程,栅条显示的原理是先将图像分为若干行,将奇数行组成一组,偶数行组成一组,在显示时奇数行从右向左平移,偶数行从左向右平移。
//水平栅条特效void Grid_effect(){//读取图片Mat srcImage, dstImage;srcImage = imread("2.jpg");dstImage = Mat(srcImage.size(), CV_8UC3);imshow("原图", srcImage);//定义变量Mat roiImage;int ImageHeigth = srcImage.rows;int ImageWidth = srcImage.cols;int step=10;//每个栅格宽度namedWindow("中间扩张");for (int i = 1; i < ImageWidth+1; i=i+10) {//步长为1for (int j = 0; j < ImageHeigth; j=j+2*step) {//步长为1//奇数行从右往左roiImage = srcImage(Rect(0, j, i, step));roiImage.copyTo(dstImage(Rect(ImageWidth - i, j, i, step)));//偶数行从左往右int k = j + step;roiImage = srcImage(Rect(ImageWidth - i, k, i, step));roiImage.copyTo(dstImage(Rect(0, k, i, step)));imshow("中间扩张", dstImage);waitKey(1);}}waitKey(0);}
动图
到此,相信大家对"C++怎么实现图像的平移"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
图像
平移
栅条
移动
特效
步长
C++
偶数
原图
变量
图片
奇数
屏幕
效果
水平
部分
内容
原理
方法
时候
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
如何在服务器上装win7
南通比较大的软件开发
海得超融合服务器
php是数据库语言吗
操作系统服务器怎么打开
无人服务器游戏手机版下载
数据库插入想要的数据
公安厅网络安全中心笔试
嘉定区无线网络技术管理系统
保障网络安全方式
国泰君安区域经济子数据库
爱数云盘服务器配置
无线网覆盖服务器
网络安全事件组织开展演练
服务器压力评估
戴尔旗下网络安全业务
对目前网络安全的看法
广州市近信互联网科技有限公司
企业网络安全等级保护通知
网络安全公众号排名
默纳克服务器能升级吗
工业实时数据库 开源
信息技术就是计算机网络技术
互联网科技新公司靠谱吗
第六章数据库技术基础
安卓服务器数据库怎么联系
网络安全技术提取年龄
钉钉服务器地址无法解析
整数 数据库系统
esxi 网络安全