精华内容
下载资源
问答
  • 项目请参见:https://handsome-man.blog.csdn.net/article/details/116427984
  • 内容索引:VC/C++源码,图形处理,BMP,平移图像 VC++平移图像的一个实例,以前有朋友让找的,后来在一本书中发现了,虽然功能不太多,但正好是实现BMP位图的平移,上下左右都可以移,被移动的区域用白色填充。...
  • Java图像平移控制实例,实现图像的位置移动,当鼠标点击图中的蝴蝶时,蝴蝶会移动到鼠标的位置,实现图片的移动效果。
  • 图像处理技术的基础函数,进行图像平移的必要函数。代码质量很高,可作为MATLAB程序代码编写的规范模板。
  • 读入一幅图像 ,对其进行水平平移、垂直平移50像素(图像扩大)
  • 该资源主要参考博客【数字图像处理】六.MFC空间几何变换之图像平移、镜像、旋转、缩放详解,博客地址http://blog.csdn.net/eastmount/article/details/46345299 主要讲述基于VC++6.0 MFC图像处理的应用知识,要通过...
  • halcon图像平移缩放源码C#版,VS2013测试通过,非常好用,推荐,可以改和编辑为自己的,我用的VS2013+halcon17.2版本测试效果不错
  • 今天小编就为大家分享一篇python 图像平移和旋转的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 图像平移代码

    2015-05-23 11:03:00
    简洁明了的实现了图像平移功能,附带实现了图片保存等功能
  • 对图片进行傅里叶变换,并显示平移对傅里叶变换结果的影响
  • 主要介绍了C#图像处理之图像平移的方法,涉及C#操作图形实现平移的相关技巧,需要的朋友可以参考下
  • 实现了图像平移、缩放、旋转、偏移操作。 环境:vs2017+opencv 、c++语言 博文地址:https://blog.csdn.net/C2681595858/article/details/82824282
  • 图像的亚像素移动,分为垂直和水平方向的分向量 注释详细 生成移动后图片结果保存在work space
  • %读一幅图像 j=imrotate(i,30%图像旋转30度 k=imresize(i,2%图像放大两倍 t=imresize(i,2'bilinear%采用双线性插值法进行放大两倍 m=imresize(i,0.8%图像缩小到0.8倍 p=translate(strel(1, [25 25]%图像平移 img=...
  • 使用MFC开发的小程序,实现图像平移、旋转、缩放。核心代码纯C编写。
  • 基于opencv实现图像平移

    热门讨论 2011-09-24 19:00:42
    基于c++ opencv实现图像平移,运行可用
  • 开发环境为QT5.8+opencv3.2,主要实现了图像几何变换,包括图像平移图像旋转,图像缩放。
  • 图像处理技术的基础函数,进行图像平移的必要函数。代码质量很高,可作为C程序代码编写的规范模板。
  • 利用matlab编写的图像平移程序

    热门讨论 2012-12-02 21:22:00
    % 图像平移函数 % g为输入RGB图像,mt为平移后的RGB图像 % a为沿水平方向的平移量 % b为沿垂直方向的平移
  • C#图像平移缩放

    2018-06-26 09:08:18
    C#图像平移缩放C#图像平移缩放C#图像平移缩放C#图像平移缩放
  • 几何变换 VS2017编译通过,可直接运行 包括图像平移 水平镜像 垂直镜像 图像转置 图像缩小 图像放大 图像旋转
  • 这篇博客将介绍如何使用OpenCV执行图像转换。可通过定义仿射变换矩阵,然后指定要如何移动图像: t{x}值的负值将使图像向左移动,t{x}的正值将图像向右...为了方便起见,可以使用imutils.translate一行代码实现平移

    使用Python,OpenCV进行图像平移转换

    这篇博客将介绍如何使用Python,OpenCV对图像进行平移转换。平移是图像沿x轴和y轴的移动。使用平移,可以将图像上下左右移动,以及上述任意组合。要使用OpenCV平移图像,只需3步:

    1. 从磁盘加载图像
    2. 定义仿射变换矩阵
    3. 应用cv2.warpAffine仿射函数来执行平移

    1. 效果图

    用了颖宝明兰的新娘图片来演示效果~,喜欢这张图的原因,是这里有一首经典的催妆诗,

    《催妆诗》
    金车欲上怯东风,排云见月醉酒空。
    独自仙姿羞半吐,冰瓷露白借微红。

    原图如下:
    在这里插入图片描述
    向右向下平移图 VS 向上向左平移图 VS 向下平移效果图如下:
    在这里插入图片描述

    2. 原理

    • 转化矩阵

    M = np.float32([
    [1, 0, shiftX],
    [0, 1, shiftY]
    ])

    转换矩阵M被定义为浮点数组。 矩阵的第一行是[1,0,t{x}],其中t{x}是将图像向左或向右移动的像素数。t{x}的负值将使图像向左移动,正值将使图像向右移动。 矩阵的第二行定义为[0,1,t{y}],其中t{y}是将图像上下移动的像素数。t{y}的负值将使图像上移,正值将使图像下移。

    3. 源码

    # 对图像进行平移
    # USAGE
    # python opencv_translate.py
    
    import argparse
    
    import cv2
    import imutils
    # 导入必要的包
    import numpy as np
    
    # 构建命令行参数及解析
    # --image 输入图像路径
    ap = argparse.ArgumentParser()
    ap.add_argument("-i", "--image", type=str, default="ml.jpg",
                    help="path to the input image")
    args = vars(ap.parse_args())
    
    # 从磁盘加载图像并显示
    image = cv2.imread(args["image"])
    image = imutils.resize(image, width=300)
    cv2.imshow("Original", image)
    
    # 将图像向右移动25像素,像下移动50像素
    M = np.float32([[1, 0, 25], [0, 1, 50]])
    shifted = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))
    cv2.imshow("Shifted Down and Right", shifted)
    
    # 修改图像向左移动50像素,向上移动90像素
    M = np.float32([[1, 0, -50], [0, 1, -90]])
    shifted = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))
    cv2.imshow("Shifted Up and Left", shifted)
    
    # 用一行代码实现平移——imutils.translate
    shifted = imutils.translate(image, 0, 100)
    cv2.imshow("Shifted Down", shifted)
    cv2.waitKey(0)
    
    cv2.destroyAllWindows()
    

    参考

    展开全文
  • MATLAB--数字图像处理 图像平移

    万次阅读 多人点赞 2019-09-07 16:08:37
    图像平移 对于图像平移,MATLAB中是可以利用膨胀函数平移图像。 代码: I = imread('a1.jpg'); se = translate(strel(1), [50 140]);%将一个平面结构化元素分别向下和向右移动30个位置 J = imdilate(I,se);%利用...

    图像平移

    对于图像的平移,MATLAB中是可以利用膨胀函数平移图像。
    代码:

    I = imread('a1.jpg');
    se = translate(strel(1), [50 140]);%将一个平面结构化元素分别向下和向右移动30个位置
    J = imdilate(I,se);%利用膨胀函数平移图像
    subplot(121);imshow(I), title('原图')
    subplot(122), imshow(J), title('移动后的图像');
    

    效果图:
    在这里插入图片描述
    这里我重点说平移的基本原理及代码实现。

    首先,我们必须要知道图像是怎么平移的?图像可以看成二维矩阵,由很多的像素点组成,假设一个像素点的坐标为(1,2),我们向下平移2个像素,向右平移3个像素,那么目标坐标就是(3,5)。这个在二维坐标中很好得出结果,无非就是横纵坐标加减偏移地址罢了,但是在矩阵中怎么算呢?其实这里有几种方法,但思维都是一样的。看原理:
    假设(x0,y0)是原图像的点,Tx是x方向偏移量,Ty是y方向偏移量(图像处理一般向下为x轴,向右为y轴)。那么(x1,y1)可以由下图矩阵计算。

    在这里插入图片描述
    通过上面的矩阵运算,我们对原图像的中的每一个像素点进行该变换(仅仅是位置变换),得到新的坐标,然后在新坐标下显示原图像。

    代码(这个是copy别人的,她用的矩阵变换和我的不一样,但是原理相同):

    I=rgb2gray(imread('a1.jpg'));%读入图片并转化为灰度图
    subplot(1,2,1),imshow(I),title('原图');                   %建立窗口,显示灰度图I
    [r,c]=size(I);                      %计算灰度图的大小,r表示行,c表示列,即通过size函数将灰度图I的行数存在矩阵的r中,列数存在矩阵的c中,这样就知道灰度图的大小是r×c
    dst=zeros(r,c);                     %建立r×c的0矩阵(平移结果矩阵),初始化为零(黑色)
    dx=50;                              %平移的x方向的距离,这里是竖直方向
    dy=80;                              %平移的y方向的距离,这里是水平方向
    tras=[1 0 dx;0 1 dy;0 0 1];         %平移变换矩阵
    for i=1:r
        for j=1:c
            temp=[i;j;1];               %灰度图I要平移变换的点,这里用矩阵表示
            temp=tras*temp;             %矩阵相乘,得到三行一列的矩阵temp,即平移后的矩阵
            x=temp(1,1);                %把矩阵temp的第一行第一列的元素给x   
            y=temp(2,1);                %把矩阵temp的第二行第一列的元素给y 
            if(x>=1&&x<=r)&&(y>=1&&y<=c)%判断所变换后得到的点是否越界
                dst(x,y)=I(i,j);        %得到平移结果矩阵,点(x,y)是由点(i,j)平移而来的,有对应关系 
            end
        end
    end
    subplot(1,2,2),imshow(uint8(dst)),title('平移后');          %建立窗口,显示平移后的图
    

    效果图:
    在这里插入图片描述
    效果虽然达到了,但是,她的这种写法好像都变成了灰色图片。那么怎么得到和膨胀函数的效果一样呢?
    这个也简单,我们只需要对原图像的三个通道分别平移,再合成就ok了(就是这么简单,哈哈)。
    代码(这个才是我写的):

     t=imread('a1.jpg');
    
    %分别提取三通道的矩阵
    t_1=t(:,:,1)
    t_2=t(:,:,2)
    t_3=t(:,:,3)
    
    %这里不能是[m,n]=size(t),我们是用三个二维矩阵合成一个三维图片(这里图片看出三维,毕竟有RGB)
    [m,n,z]=size(t);
    
    % 定义偏移量
    dx=50;
    dy=140;
    
    %定义新矩阵 ,存储新坐标
    r_1=zeros(m,n);
    r_2=zeros(m,n);
    r_3=zeros(m,n);
    
    %martix 变换用的矩阵
    martix=[1,0,dx;0,1,dy;0,0,1];
    
    %坐标变换
    for i=1:m
    for j=1:n
    tem=[i;j;1];
    tem=martix*tem;
    x=tem(1,1);
    y=tem(2,1);
    if(x>=1&&x<=m)&&(y>=1&&y<=n)
    r_1(x,y)=t_1(i,j);
    r_2(x,y)=t_2(i,j);
    r_3(x,y)=t_3(i,j);
    end
    end
    end
    
    %得到三个新矩阵合成一张图片
    rt=t
    rt(:,:,1)=r_1;
    rt(:,:,2)=r_2;
    rt(:,:,3)=r_3;
    
    %显示
    subplot(1,2,1),imshow(t),title('原图');
    subplot(1,2,2),imshow(rt),title('平移后');
    

    效果图:
    在这里插入图片描述

    更多

    获取更多资料、代码,微信公众号:海轰Pro
    回复 海轰 即可

    展开全文
  • 实现图像的自定义平移、任意缩放,图片镜像显示,以及输入旋转读数来实现图像的任意角度旋转。
  • 几何变换 VS2017编译通过,可直接运行 包括 图像平移 垂直镜像 水平镜像 图像转置 图像缩放 图像旋转
  • 利用傅里叶变换和反傅里叶变换,实现两个图像之间相位相关性比较,从而得到平移量,用于图像防抖和简单的配准算法,matlab实现。
  • OpenCV:图像平移

    2021-08-12 20:17:56
    参数img表示需要平移图像数据,参数d表示平移像素量(右移为正,左移为负) Mat img_shift(Mat img, int d) { Mat tmp; if (d > 0) { //右移 Mat q0(img, Rect(0, 0, img.cols - d, img.rows)); ...

    以水平图像位移为例

    方法一:

    原理:

    将图像分成两个区域,而后利用临时变量将这两个区域进行交换。

    代码实现:

    参数img表示需要平移的图像数据,参数d表示平移像素量(右移为正,左移为负)

    Mat img_shift(Mat img, int d)
    {
    	Mat tmp;
    
    	if (d > 0)
    	{
    		//右移
    		Mat q0(img, Rect(0, 0, img.cols - d, img.rows));
    		Mat q1(img, Rect(img.cols - d, 0, d, img.rows));
    
    		q0.copyTo(tmp);
    
    		Mat q2(img, Rect(0, 0, d, img.rows));
    		Mat q3(img, Rect(d, 0, img.cols - d, img.rows));
    
    		q1.copyTo(q2);
    		tmp.copyTo(q3);
    	}
    	else
    	{
    		//左移
    		d = -d;
    
    		Mat q0(img, Rect(0, 0, d, img.rows));
    		Mat q1(img, Rect(d, 0, img.cols - d, img.rows));
    
    		q0.copyTo(tmp);
    
    		Mat q2(img, Rect(0, 0, img.cols - d, img.rows));
    		Mat q3(img, Rect(img.cols - d, 0, d, img.rows));
    
    		q1.copyTo(q2);
    		tmp.copyTo(q3);
    
    	}
    
    
    	return img;
    
    }

    结果展示:

    结果展示的为右移100像素的结果

     

     

    方法二:

    原理:

    将图像数据复制粘贴在原图像两倍宽的矩阵中,即两个原始图像在矩阵中左右并列存放;而后根据位移量来截取原始图像宽高的图像数据。

    代码实现:

    参数img表示需要平移的图像数据,参数d表示平移像素量(右移为正,左移为负)

    //第二种图像平移
    //将图像扩展两倍的宽 并对其进行截取达到是图像平移
    Mat img_shift1(Mat img, int d)
    {
    
    	Mat src(img.rows, img.cols * 2, img.type());
    
    	//水平平移 则在水平方向上对其复制粘贴
    	img.copyTo(src({ 0,0,img.cols,img.rows }));
    	img.copyTo(src({ img.cols,0,img.cols,img.rows }));
    
    	if (d > 0)
    	{
    		Mat tmp(src, Rect(img.cols - d, 0, img.cols, img.rows));
    		tmp.copyTo(img);
    	}
    	else
    	{
    		Mat tmp(src, Rect(-d, 0, img.cols, img.rows));
    		tmp.copyTo(img);
    	}
    
    
    
    	return img;
    }

    结果展示:

     

     仅供自己学习笔记!

    如需转载,请注明出处!

    展开全文
  • 在实验三基础上实现,使用MFC可打开并显示一幅位图文件,可查看其文件长度、偏移量、宽度、高度及像素位数等信息,可进行图像反转变换,可显示图像灰度...可实现图像向左或向上平移。完成了垂直镜像和水平镜像功能。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 79,136
精华内容 31,654
关键字:

图像的平移