通常,我们可以通过以下方式获取图像中的点位置:
figure, imshow rice.png;
[x,y,~] = ginput(1)
返回的是这样的:
x = 121
y = 100
这些数字是按像素衡量的,但我想要更准确的结果,例如:
x = 121.35
y = 100.87
任何帮助将不胜感激!!!
通常,我们可以通过以下方式获取图像中的点位置:
figure, imshow rice.png;
[x,y,~] = ginput(1)
返回的是这样的:
x = 121
y = 100
这些数字是按像素衡量的,但我想要更准确的结果,例如:
x = 121.35
y = 100.87
任何帮助将不胜感激!!!
对于使用控制点对齐/注册两个图像,您确实需要不同控制点的亚像素精度。
Matlab 有一个非常好的用户界面,你可能想看看:cpselect
. 这里
也提供了一个不错的教程。
给定两个图像oim1
,oim2
您可以使用它cpselect
来转换oim2
为 "fit" oim1
:
>> [input_points, base_points] = cpselect(oim2, oim1, 'Wait', true);
>> T = cp2tform( input_points, base_points, 'similarity' ); % find similarity transformation
>> aim2 = tformarray( oim2, T, makeresampler('cubic','fill'), [2 1], [2 1], size(oim1(:,:,1)'), [], 0 );
我认为imagesc可能有用
% load example image
Istruct = load('gatlin');
I = Istruct.X./max(Istruct.X(:));
% display it
figure;
imagesc(I);
colormap(gray);
% get some point
[x,y]=ginput(1);
[x, y] % x and y will be double