
首先,cad提供了许多定位坐标的方法。如你所说的这种情况,可以采用相对坐标的定位方法更为合适。具体步骤及分类可以参见下面的叙述:
1 CAD普通的坐标输入方式
平面绘图只需输入X,Y两个坐标值,三维绘图可以输入X,Y,Z三个坐标值。除此以外,CAD还提供了极坐标、柱坐标、球坐标,在输入这些坐标时,可以输入相对坐标原点的绝对值,也可以输入相对上一点的相对值。
(1)绝对坐标:
就是直接输入相对坐标原点的各轴向的距离或角度。
(2)相对坐标:
相对上一点各轴向的距离或角度,需要在输入的坐标值前加一个@,例如@2,3,表示此点相对上一点X轴方向距离为2,Y轴距离为3。
(3)极坐标:
通过输入以角括号 (<) 分隔的距离和角度来定位点,也同样可以输入绝对坐标和相对坐标,输入相对坐标时前面也要加@符号,例如@10<45。
(4)柱坐标:
输入形式为:X<[与 X 轴所成的角度],Z ,也就是平面上的极坐标加上一个Z坐标。
(5)球坐标:
输入形式为:X<[与 X 轴所成的角度]<[与 XY 平面所成的角度] ,就是平面上的极坐标加上一个与XY平面的角度。
2动态输入功能的使用
CAD在2007(具体版本添加的不确定)以上版本都有动态输入(DYN)功能,这样在图形窗口绘图的时候,可以直接动态输入坐标值,这样输入坐标时不必去看命令行。但动态输入跟命令行输入是有区别的,输入坐标时默认是相对坐标,无需在前面加@,当然也可以设置成绝对坐标。
3其他实现方法
除了完整地输入坐标值,我们还可利用捕捉、正交的辅助工具,通过光标辅助定位或直接定位点的准确位置。
比如画直线时,可以利用对象捕捉(F3)直接用光标将点定位到已有图形的某个特征点上,然后可以利用光标定位方向,例如打开正交(F8)后将光标定位到水平或竖直方向,直接输入直线的长度即可,无需再输入相对坐标。
通常一幅图像有四个焦角点,已知图像的大小为widthheight,那么四个角点的坐标分别为:(0,0), (0,width-1), (height-1,0), (width-1,height-1)。
本人恰巧正在做角点的提取与匹配,特征点有很多种,看是基于区域还是边缘,先是要检测特征点,这个主要是利用微分,然后再提取,貌似没有现成的函数,这个给你参考一下,效果还可以
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Harris提取算法
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clc,clear all;
filename='camera2bmp';
X= imread(filename); % 读取图像
Info=imfinfo(filename); %这个要习惯用
% f=rgb2gray(X);
f=X;
ori_im=double(f)/255; %unit8转化为64为双精度double64
fx = [-2 -1 0 1 2]; % x方向梯度算子(用于Harris角点提取算法)
Ix = filter2(fx,ori_im); % x方向滤波 善于使用filter
% fy = [5 8 5;0 0 0;-5 -8 -5]; % 高斯函数一阶微分,y方向(用于改进的Harris角点提取算法)
fy = [-2;-1;0;1;2]; % y方向梯度算子(用于Harris角点提取算法)
Iy = filter2(fy,ori_im); % y方向滤波
Ix2 = Ix^2;
Iy2 = Iy^2;
Ixy = IxIy;
clear Ix;
clear Iy; %消除变量哈
h= fspecial('gaussian',[10 10 ],2); % 产生77的高斯窗函数,sigma=2
Ix2 = filter2(h,Ix2);
Iy2 = filter2(h,Iy2);
Ixy = filter2(h,Ixy); %分别进行高斯滤波
height = size(ori_im,1);
width = size(ori_im,2);
result = zeros(height,width); % 纪录角点位置,角点处值为1 ,背景都是黑色的哈
R = zeros(height,width);
Rmax = 0; % 图像中最大的R值 以便设置门限
for i = 1:height
for j = 1:width
M = [Ix2(i,j) Ixy(i,j);Ixy(i,j) Iy2(i,j)]; %22的矩阵
R(i,j) = det(M)-006(trace(M))^2; % 计算R ,求得RMAX,看来是整体求得的,角点响应函数
if R(i,j) > Rmax
Rmax = R(i,j);
end;
end;
end;
cnt = 0; %记录点数的
for i = 2:height-1
for j = 2:width-1 % 进行非极大抑制,窗口33
if R(i,j) > 001Rmax && R(i,j) > R(i-1,j-1) && R(i,j) > R(i-1,j) && R(i,j) > R(i-1,j+1) && R(i,j) > R(i,j-1) && R(i,j) > R(i,j+1) && R(i,j) > R(i+1,j-1) && R(i,j) > R(i+1,j) && R(i,j) > R(i+1,j+1)
result(i,j) = 1;
cnt = cnt+1;
end;
end;
end;
%
% i=1;
% for j=1:height
% for k=1:width
% if result(j,k)==1;
% corners1(i,1)=j;
% corners1(i,2)=k;
% i=i+1;
% end;
% end;
% end;
[posc, posr] = find(result == 1);
cnt % 角点个数
imshow(ori_im255) %和 X的效果是一样的
hold on;
plot(posr,posc,'g+');
以上就是关于求高手回答,cad怎么快速定位坐标全部的内容,包括:求高手回答,cad怎么快速定位坐标、C++怎么提取某个像素点的坐标、matlab 中有提取图像特征点的函数吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)