在matlab圖像處理中,為了標識出圖像的目標區域來,需要利用plot函數或者rectangle函數,這樣標識目標后,就保存圖像。
一般saves保存的圖像存在白邊,可以采用imwrite對圖像進行保存,保留原始圖像大小。
代碼如下:
set(gca,'units','pixels','Visible','off'); axes('position', [0 0 1.0 1.0]); [rows cols]=size(img); imshow(img); hold on s = regionprops(logicmap); for r = 1:length(s) plot(s(r).Centroid(:,1), s(r).Centroid(:,2), 'r*') rectangle('Position',s(r).BoundingBox,'EdgeColor','r'); end frame=getframe(gcf,[0,0,cols,rows]); im=frame2im(frame); imwrite(im,'a.jpg','jpg');%可以修改保存的格式
保存結果如下:
附加:在matlab2012,win7情況下,上述保存圖像的方法還是會存在白邊,
可采用如下方法設置figure與圖像一致,圖像能填充顯示窗口,並進行畫框保存。
% 顯示
set (gcf,'Position',[400,400,cols,rows]); %設置figure位置和大小
imshow(videoclip(:,:,nrames),'border','tight','initialmagnification','fit'); %圖像填充figure axis normal;
% 保存
frame=getframe(gcf,[0,0,cols,rows]);
im=frame2im(frame);
imwrite(im,outdir);