2016-03-07 51 views
1

我有兩個圖像。我想查看特殊區域(ROI)中的更多細節。因此,我會繪製一個紅色矩形,並將其放大爲原始大小(256乘以256),並顯示在第二行,作爲我的以下預期結果。你能幫我解決它在MATLAB中?這是我當前的代碼如何在MATLAB中通過ROI縮放圖像

Img1 = imread('peppers.png'); 
Img2 = imread('coins.png'); 
Img1=imresize(Img1,[256 256]); 
Img2=imresize(Img2,[256 256]); 
%%Draw rectangle 
subplot(221);imshow(Img1); rectangle('Position',[100 50 20 20], 'LineWidth',2, 'EdgeColor','r'); 
subplot(222);imshow(Img2);rectangle('Position',[100 50 20 20], 'LineWidth',2, 'EdgeColor','r'); 
%% zoom in image 

enter image description here

回答

1

試一下這個(圖像出現時,用你的mouse選擇的感興趣區域):

Img1 = imread('peppers.png'); 
Img1=imresize(Img1,[256 256]); 

f=figure; 
imshow(Img1); 
rect = getrect(f); %//select roi with mouse 
Img1_roi = Img1(rect(2) : (rect(2)+rect(4)) , rect(1) : (rect(1)+rect(3)) , :); %//store roi in matrix 

Img2 = imread('coins.png'); 
Img2= imresize(Img2,[256 256]); 

f=figure; 
imshow(Img2); 
rect = getrect(f); %//select roi with mouse 
Img2_roi = Img2(rect(2) : (rect(2)+rect(4)) , rect(1) : (rect(1)+rect(3)) , :); %//store roi in matrix 

%//Plot 
subplot(2,2,1) 
imshow(Img1) 
subplot(2,2,2) 
imshow(Img2) 
subplot(2,2,3) 
imshow(Img1_roi) 
subplot(2,2,4) 
imshow(Img2_roi) 
+1

@ user8264,而不是'RECT = getrect (f)',用代碼自己填寫'rect'。例如,如果我想從'(100,100)'of'width = 80'和'height = 90'開始剪裁一個區域,請設置'rect = [100 100 80 90]'。其餘代碼保持不變 – Lincoln

+0

它運行良好。我只是有其他問題。你知道如何繪製第三幅圖像(Img1_roi)和最後一幅圖像的邊界框。我想繪製覆蓋這些圖像的紅色作爲更新問題 – user8264

+1

@ user8264在imshow(Img1_roi)':'rectangle('Position',[1 1 90 60],'LineWidth',2''EdgeColor' ,'r')',其中'90'和'60'是roi圖像的'width'和'height'。 – Lincoln