亚像素图像图像平移

本文介绍如何利用C++和OpenCV库,通过双线性插值算法来执行图像的亚像素平移操作,实现更精确的图像变换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图像平移是最基本的图像几何变换,楼主采用双线性插值算法实现级的图像平移。

void TranslateTransform(Mat& src, Mat& dst, double dx, double dy, uchar FillValue = 0)  ///图像的平移变换
{
    CV_Assert(src.depth() == CV_8U);
    const int Rows = src.rows;
    const int Cols = src.cols;
    dst.create(Rows, Cols, src.type());
	int tempj = 0, tempy = 0;
///--------像素级平移-----------------
	if ((dx - (int)dx) == 0 && (dy - (int)dy)== 0 )   
	{  
		int y,x;
		for (int i = 0; i < Rows; i++)
		{ 
			x = i - dx;               ///平移后坐标映射到原图像,x行
			if (x >= 0 && x < Rows)   ///保证映射后的坐标在原图像行范围内       
			{
				uchar* srcdata = src.ptr<uchar>(x);
				uchar* dstdata = dst.ptr<uchar>(i);
				for (int j = 0; j < Cols; j++)
				{
					y = j - dy;     //平移后坐标映射到原图像,y列
					tempj = 3 * j;   彩色图像横坐标的位置
					tempy = 3 * y;
					if ( y >= 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值