实验二
#include "cv.h"
#include<stdio.h>
#include "highgui.h"
IplImage *PingYi(IplImage *src, int h0, int w0);
int main(int argc, char** argv)
{IplImage* pImg; //声明IplImage指针IplImage* pImgAfterMove;pImg = cvLoadImage("6013202130.jpg");pImgAfterMove = cvCloneImage(pImg);cvSetZero(pImgAfterMove);pImgAfterMove = PingYi(pImg, 100, -100);cvNamedWindow("原图", CV_WINDOW_AUTOSIZE);cvShowImage("原图", pImg);cvNamedWindow("移动后", CV_WINDOW_AUTOSIZE);cvShowImage("移动后", pImgAfterMove);cvWaitKey(0); //等待按键
cvDestroyWindow("aa");//销毁窗口cvDestroyWindow("bb");cvReleaseImage(&pImg); //释放图像cvReleaseImage(&pImgAfterMove);return 0;
}//该函数的功能是实现图像的平移
//规定向下、向右为(正,正)
IplImage *PingYi(IplImage *src, int h0, int w0)
{int h = h0;int w = w0;int imageHeight = src->height;int imageWidth = src->width;int i, j;CvScalar sTemp;IplImage *dst = cvCloneImage(src);cvSetZero(dst);if (h >= 0 && w >= 0){//
        for (i = 0; i<imageHeight - h; i++){for (j = 0; j<imageWidth - w; j++){sTemp = cvGet2D(src, i, j);cvSet2D(dst, i + h, j + w, sTemp);}}}else if (h<0 && w >= 0){for (i = -h; i<imageHeight; i++){for (j = 0; j<imageWidth - w; j++){sTemp = cvGet2D(src, i, j);cvSet2D(dst, i + h, j + w, sTemp);}}}else if (h >= 0 && w<0){for (i = 0; i<imageHeight - h; i++){for (j = -w; j<imageWidth; j++){sTemp = cvGet2D(src, i, j);cvSet2D(dst, i + h, j + w, sTemp);}}}else if (h<0 && w<0){for (i = -h; i<imageHeight; i++){for (j = -w; j<imageWidth; j++){sTemp = cvGet2D(src, i, j);cvSet2D(dst, i + h, j + w, sTemp);}}}else{printf("无法移动哦!");dst = cvCloneImage(src);}return dst;

转载于:https://www.cnblogs.com/zhangfeionline/p/5465175.html

2. 把一幅图像进行平移。相关推荐

  1. matlab 通过矩阵变换使图像旋转平移_数字图像处理|P11 第三章 第四节 图像的几何变换...

    第四节 几何变换 图像生成过程中,由于系统本身具有非线性或拍摄角度不同,会使生成的图像产生几何失真.几何失真一般分为系统失真和非系统失真,系统失真是有规律的.能预测的:非系统失真则是随机的.例如:(1 ...

  2. matlab 通过矩阵变换使图像旋转平移_28. 图像扭曲

    本文同步发表在我的微信公众号"计算摄影学",欢迎扫码关注 你有没有想过,下面这个视频中的特效应该如何实现? Morphing Female Starshttps://www.zhi ...

  3. 【数字图像处理】实验一 图像的平移,缩放和旋转(vs2017+opencv)

    文章目录 一. 平移 1.思路 2.实现代码 二.缩放 1.思路 2.代码实现 三.旋转变换 1.思路 对文章内容如有异议欢迎在评论区提问 代码包: 数字图像平移.旋转.缩放 一. 平移 1.思路 新 ...

  4. 使用仿射变换将一幅图像放置到另一幅图像中

    一,原理分析 仿射变换,又称仿射映射,是指在几何中,一个向量空间进行一次二维坐标到二维坐标的线性变换.仿射变换可以来表示:旋转 (线性变换),平移 (向量加),缩放操作 (线性变换),仿射变换代表的是 ...

  5. 计算机视觉学习(三):仿射变换将一幅图像放置到另一幅图像中

    本例子为通过仿射扭曲变换将图像放置到另一幅图像中,使得它们能够和指定的区域或者标记物对齐. 运行的代码如下: # test.py from PCV.geometry import warp, homo ...

  6. C语言中将0到1000的浮点数用强制指针类型转换的方式生成一幅图像

    搞过计算机图像的人都知道,图像中的每一个像素通常为一个整型数,它可以分成4个无符号的char类型,以表示其RGBA四个分量.一幅图像可以看做是一个二维整型数组.这里我会生成一个float数组,其数组大 ...

  7. python图合并_Python图像处理实现两幅图像合成一幅图像的方法【测试可用】

    本文实例讲述了Python图像处理实现两幅图像合成一幅图像的方法.分享给大家供大家参考,具体如下: 将两幅图像合成一幅图像,是图像处理中常用的一种操作,python图像处理库PIL中提供了多种种将两幅 ...

  8. OpenCV之core 模块. 核心功能(1)Mat - 基本图像容器 OpenCV如何扫描图像、利用查找表和计时 矩阵的掩码操作 使用OpenCV对两幅图像求和(求混合(blending))

    Mat - 基本图像容器 目的 从真实世界中获取数字图像有很多方法,比如数码相机.扫描仪.CT或者磁共振成像.无论哪种方法,我们(人类)看到的是图像,而让数字设备来"看"的时候,则 ...

  9. 【python图像处理】两幅图像的合成一幅图像(blending two images)

    将两幅图像合成一幅图像,是图像处理中常用的一种操作,python图像处理库PIL中提供了多种种将两幅图像合成一幅图像的接口. 下面我们通过不同的方式,将两图合并成一幅图像. 1.使用Image.ble ...

最新文章

  1. 关于matlab的单精度与双精度
  2. 统计日志中ip访问次数并排序的三种方法
  3. 《数据安全法》今日实施,中国信通院联合百度等企业发起“数据安全推进计划”
  4. OpenCV使用MSER检测末端区域的实例(附完整代码)
  5. 正式发布 .Net2.0 大文件上传服务器控件
  6. 新浪新闻动态网页爬取+热点词云分析
  7. linux 卸载nfs device is busy,NFS umount 提示 device is busy
  8. (二)JAVA设计模式中的六大设计原则之里氏替换原则
  9. 设计模式-设计原则-开闭原则是目标,里氏代换原则是基础,依赖倒转原则是手段...
  10. 大商创小程序源码_小程序直播系统有哪些基本功能
  11. mysql 层次化查询_SQL高级查询(层次化查询,递归)
  12. 基于pyqt编写的高校bbs发帖辅助软件和双色球号码生成器
  13. 将本地项目上传到码云,每个步骤都有图文
  14. 网易云签到可抽奖?那一年我能签到365天。不信?你看。
  15. 低调做人,你会一次比一次稳健;高调做事,你会一次比一次优秀!(偷来的自己留着学习)
  16. 做产品开发之前,如何准确的找到意向用户群体的痛点
  17. 【数据结构】大连理工大学软件学院20年
  18. mac音乐播放器QQ音乐好用吗?vip绿钻的QQ音乐有哪些版本优势?
  19. 设计模式之建造者模式
  20. 谷歌大脑用强化学习为移动设备量身定做最好最快的CNN模型

热门文章

  1. 配置Windows Server 2003 的RADIUS Server的方法
  2. SAP Netweaver 7.4 SR2 Application Java Installation
  3. forkjoin rxjs_如何通过吃披萨来理解RxJS运算符:zip,forkJoin和Combine
  4. 喜欢把代码写一行的人_我最喜欢的代码行
  5. Hadoop集群搭建(五:Hadoop HA集群模式的安装)
  6. UI设计培训之设计中的点线面-面
  7. Zookeeper迁移(扩容/缩容)
  8. 宜人贷YEP技术、数据沉淀背后:金融科技迎来开放赋能时代
  9. 将一个普通的java项目转化为maven项目
  10. Linux入门(四)