C++怎么实现图像的平移
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容主要讲解"C++怎么实现图像的平移",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++怎么实现图像的平移"吧!图像的平移移动是将图像看作一个整体,
千家信息网最后更新 2026年11月03日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安全错误
数据库的锁怎样保障安全
手磨咖啡
南京欣网互联网络科技
百单网互联网科技有限公司
百单网互联网科技有限公司怎么样
高科技互联网
互联网科技战争
唐信互联网科技
世界互联网领先科技成果
万达互联网科技
顺玮阁互联网科技
镁科技互联网资讯平台
广州慧亚互联网科技怎么样
亳州好赞互联网科技有限公司
晋城互联网科技
伊宁互联网科技做什么的
山东大美朱楼互联网科技有限公司
悟空问答互联网科技
互联网科技和医药行业
好易买互联网科技
每日互联网科技新闻
湖北九亚互联网络科技有限公司
湖南永感互联网科技有限公司
A股互联网金融科技公司
科技与互联网发展
上游互联网科技
互联网金融 科技创新
互联网科技美容
互联网科技中介
云南省自由互联网科技有限公司
互联网与数字科技关系