MATLAB - 如何在图像上绘制x,y并保存?

时间:2010-07-05 09:16:23

标签: image matlab plot

文件datafile.txt

code  x     y
23    22.1  33.11
23    110   22
23    11    200 
24    111   321
24    222   111
24    10    22.1
10    88.3  99.3
10    110   32
10    121   143
10    190   200

在上面的文件中,第一列表示屏幕上显示的图像代码,x和y列表示人们在图像上查看的点。向用户显示了三个不同的图像。下面的代码的问题是我不知道如何使用绘制的x-y保存图像,文件名与打开时相同。

fid = fopen(datafile.txt);
A = textscan(fid,'%f%f%f'); %Read data from the file
code = A{1};
xfix = A{2};
yfix = A{3};

for k=1:length(code)
    imagefile=code(k)        
    I = imread([num2str(imagefile) '.jpg']);    %# Load a sample image
    imshow(I);                                  %# Display it
    [r,c,d] = size(I)                           %# Get the image size
    set(gca,'Units','normalized','Position',[0 0 1 1]);  %# Modify axes size
    set(gcf,'Units','pixels','Position',[200 200 c r]);  %# Modify figure size
    hold on;
    x = xfix2(k);
    y = yfix2(k);
    plot(x,y,'+ b');
    f = getframe(gcf);              %# Capture the current window
    imwrite(f.cdata,([num2str(imagefile) '.jpg']));  %# Save the frame data
    hold off
end

Enter image description here

但是,我有一点问题。我在图像上叠加的“交叉图”被灰色阴影包围(就像我们复印纸张时,它们将是灰色)。这是怎么发生的?

1 个答案:

答案 0 :(得分:2)