2014-10-12 25 views

Trả lời

7

Sử dụng getframe

img = imread('cameraman.tif'); 
fh = figure; 
imshow(img, 'border', 'tight'); %//show your image 
hold on; 
rectangle('Position', [50 70 30 60]); %// draw rectangle on image 
frm = getframe(fh); %// get the image+rectangle 
imwrite(frm.cdata, 'savedFileName.png'); %// save to file 

Xem rectanlge cho các tùy chọn thêm về hình chữ nhật vẽ. Đối số 'Position' cho hình chữ nhật có định dạng [from_x from_y width height] và được cho theo đơn vị pixel.

-2

Tôi đang sử dụng octave và chức năng getframe không có sẵn vì vậy tôi đã viết hàm thông thường này

%% Draw red rectangle IN the image using the BoundingBox from regionprops 
function rgbI = drawRectangleOnImg (box,rgbI) 
    x = box(2); y = box(1); w = box(4); h = box(3); 
    rgbI(x:x+w,y,1) = 255; 
    rgbI(x:x+w,y+h,1) = 255; 
    rgbI(x,y:y+h,1) = 255; 
    rgbI(x+w,y:y+h,1) = 255; 
    rgbI(x:x+w,y,2) = 0; 
    rgbI(x:x+w,y+h,2) = 0; 
    rgbI(x,y:y+h,2) = 0; 
    rgbI(x+w,y:y+h,2) = 0; 
    rgbI(x:x+w,y,3) = 0; 
    rgbI(x:x+w,y+h,3) = 0; 
    rgbI(x,y:y+h,3) = 0; 
    rgbI(x+w,y:y+h,3) = 0; 
end 
0
I=imread('%required image'); 
[M,N] = size(rgb2gray(I));%find the size of the image 
x=int16(M/3);y=int16(N/3);xwidth=int16(N/3); ywidth=int16(N/3);%specify the position 
pos=[x y xwidth ywidth];% give the position in which you wanna insert the rectangle 
imshow(I);hold on 
rectangle('Position',pos,'EdgeColor','b') 
2

Nếu không sử dụng getframe:

im=imread('face.jpg'); %Image read 
rectangle('Position', [10 10 30 30] ,... 
    'EdgeColor', 'r',... 
    'LineWidth', 3,... 
    'LineStyle','-');%rectangle properties 
imshow(im, rectangle); %draw rectangle on image. 

Để biết thêm chi tiết chuyến thăm this MathWorks thread :)

Các vấn đề liên quan