前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OpenCV 几何变换-图像平移

OpenCV 几何变换-图像平移

作者头像
chaibubble
发布2022-05-07 09:27:25
5070
发布2022-05-07 09:27:25
举报
文章被收录于专栏:深度学习与计算机视觉

我们可以通过对图像的像素点的操作,实现图像平移效果:

平移灰度图像:

代码语言:javascript
复制
SrcImage=imread("1.jpg");
cvtColor(SrcImage,SrcImage,CV_BGR2GRAY);
Mat MoveImage(SrcImage.rows,SrcImage.cols,CV_8UC1,Scalar(0));
for (int i=0;i<SrcImage.rows;i++)
{
	for (int j=0;j<SrcImage.cols-100;j++)
	{
  MoveImage.at<uchar>(i,j) = (int)SrcImage.at<uchar>(i,j+100);
	}
}

这样图像将向左平移100个像素,当然,平移后的图像最右边的100个像素是黑色的,同理可以实现上下右以及各种平移操作。

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

平移彩色图像:

彩色图像一个像素点包含三个数据,分别是RGB通道的值,那么我们需要一个结构去存储彩色图像每个像素点的三个值——Vec3b。 定义:

代码语言:javascript
复制
typedef Vec<uchar, 3> Vec3b;

Vec3b—表示每一个Vec3b对象中,可以存储3个char(字符型)数据。

代码语言:javascript
复制
SrcImage=imread("1.jpg");
cvtColor(SrcImage,SrcImage,CV_BGR2GRAY);
Mat MoveImage(SrcImage.rows,SrcImage.cols,CV_8UC3,Scalar(0,0,0));
for (int i=0;i<SrcImage.rows;i++)
	{
		for (int j=0;j<SrcImage.cols-100;j++)
		{

		MoveImage.at<Vec3b>(i,j) = SrcImage.at<Vec3b>(i,j+100);
		}
    }
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档