MATLAB - Wie zeichne ich x, y auf ein Bild und speichere es?
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
In der obigen Datei steht die erste Spalte für den auf dem Bildschirm angezeigten Bildcode und die Spalten x und y für den Punkt, an dem Personen auf das Bild schauen. Dem Benutzer wurden drei verschiedene Bilder angezeigt. Das Problem mit dem folgenden Code ist, dass ich nicht weiß, wie ich das Bild mit dem eingezeichneten x-y unter dem gleichen Dateinamen speichern soll, unter dem es geöffnet wurde.
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
Jedoch habe ich ein kleines problem. Die "Kreuzdiagramme", die ich über das Bild lege, waren von grauem Schatten umgeben (wie beim Fotokopieren eines Papiers werden sie eine graue Farbe haben). Wie ist es passiert