最近邻图像旋转代码 灰度图像 c++实现

图像旋转的公式如下,如何推倒在此便不再详细介绍:    

x0 =  (x-xr)*CosTheta - (y-yr)*SinTheta + xr + 0.5

y0  = (y-yr)*CosTheta + (x-xr)*SinTheta + yr + 0.5

其中, x , y 为旋转后图像像素  x0 , y0  为其旋转前对应的像素 , 本公式中 顺时针方向旋转角度为 -  ,逆时针方向旋转角度为+  , theta为旋转角度。

最近邻方法介绍:

最近邻方法很好理解,是最容易的图像旋转方式,但是,其旋转效果跟双线性以及双三次插值比还是会差一些,但是用肉眼观察,差别不明显。

最近邻方法:

       根据旋转角度,对旋转后的图像的每个像素点,寻找与它最近的 原图像点的灰度值作为其灰度值。由于角度的计算会产生小数,此方法直接采用

四舍五入的方式进行处理。


   函数代码如下:


/*
函数功能:采用最近邻的方式,实现灰度图像的旋转,旋转后,图像的大小不变。
参数介绍:
      src: 原图像  width:原图像的宽度  height:原图像的高度
 dst:旋转后的图像
 theta:旋转角度(弧度制)
 xr,yr :

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值