声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: Snikas

[编程技巧] 请教如何实现对图中矩阵的任意角度旋转

[复制链接]
 楼主| 发表于 2008-5-30 12:07 | 显示全部楼层
受ch_j1985的思路提示,我通过直角坐标转换成极坐标再转回直角坐标的方法得到了一个滤波矩阵,其图形见附件,是旋转了45度的,但是我发现坐标转换中会产生小数,但坐标转换h(l,m)=n(a,b)中的a,b坐标必须是整数,这就涉及到四舍五入取整,这样导致有的坐标值不会被取到,也就使得旋转后的二维滤波矩阵中有些点为0,这就是为什么旋转后的矩阵在原点周围应该为通带的区域却出现了蓝色的点,不知道该怎么解决这个问题。。。

旋转45度后的滤波图形

旋转45度后的滤波图形
回复 支持 反对
分享到:

使用道具 举报

发表于 2008-5-30 12:33 | 显示全部楼层
原帖由 Snikas 于 2008-5-30 12:07 发表
受ch_j1985的思路提示,我通过直角坐标转换成极坐标再转回直角坐标的方法得到了一个滤波矩阵,其图形见附件,是旋转了45度的,但是我发现坐标转换中会产生小数,但坐标转换h(l,m)=n(a,b)中的a,b坐标必须是整数,这就 ...


将转换后得到的滤波矩阵同时乘以一个整数(比如1000),再四舍五入,试试看这样可以不?

评分

1

查看全部评分

发表于 2008-5-30 12:33 | 显示全部楼层

回复 15楼 的帖子

自己再改一下阿...
下面是你需要的?
clear;
clc;
x=-10:0.1:10;
y=-10:0.1:10;
theta=pi/6;
[X,Y]=meshgrid(x,y);
A=cos(theta)*X+sin(theta)*Y;
B=-sin(theta)*X+cos(theta)*Y;
Z=exp(-A.^2.*B.^2);
imagesc(x,y,Z);

[ 本帖最后由 wwbeyondww 于 2008-5-30 12:34 编辑 ]

评分

1

查看全部评分

 楼主| 发表于 2008-5-30 15:23 | 显示全部楼层

回复 18楼 的帖子

非常感谢!!!效果完全一致!
只是可不可以麻烦解释下程序,尤其后几句,我想搞懂这个程序。
发表于 2008-5-30 15:45 | 显示全部楼层

回复 19楼 的帖子

A和B就是一个坐标旋转变换的公式而已
 楼主| 发表于 2008-5-30 17:21 | 显示全部楼层

回复 20楼 的帖子

哦,懂了,谢谢哈,以前是学过这么个公式
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-17 12:29 , Processed in 0.082575 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表