halcon旋转后坐标_基于FPGA的图像旋转设计

该项目是参加2019届全国大学生FPGA大赛的作品,系统主要实现视频任意角度旋转。利用国产的紫光同创公司的FPGA芯片作为开发平台,视频图像从摄像头实时采集,经过算法旋转后,通过hdmi接口显示。该项目最终晋级决赛,并获得紫光同创企业特别奖。

一,图像旋转原理

图像旋转是指图像按照某个位置转动一定角度的过程,旋转中图像仍保持这原始尺寸。图像旋转后图像的水平对称轴、垂直对称轴及中心坐标原点都可能会发生变换,因此需要对图像旋转中的坐标进行相应转换。

如图,原图像经过顺时针旋转角度为 θ 后,源图像的坐标为 P0 ( Xo, Yo ) 的点移动到了 P1(X1, Y1)。

8fc2e6d08dcf0825a1bd8a74c79b7d83.png

经过推导,可以得到上述的 P0 和P1 的坐标变换关系式。

二,MATLAB仿真

方案一: 【正向预设】从原图映射到目标图像

在此方案中,实现代码的方式是正向的思路,将原图中的像素点的坐标进行坐标的旋转,然后直接幅值到输出的图像中,此方案旨在找到输入坐标与输出坐标之间的代数对应关系。

在该方法中,首先将原始坐标以及目标坐标放入了极坐标中,并且通过在极坐标中的关系,找到了同时满足X0,Y0,X1,Y1四个参量的方程组,以此来解出对应的坐标关系,并以此为基础得到了输入与输出之间的矩阵运算关系如下:

c78d979fc91894b3beb3c85f862a1c54.png

Matlab代码实现如下:

clear allclc % 读入图片im = imread('1.jpg');figure;imshow(im); % 求出旋转矩阵a = 40 / 180 * pi;R = [cos(a), -sin(a); sin(a), cos(a)]; % 求出图片大小 ch为通道数 h为高度 w为宽度sz = size(im);h = sz(1);w = sz(2);ch = sz(3);c = [h; w] / 2; % 初始化结果图像im2 = uint8(zeros(h, w, 3));for k = 1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值