How to draw rectangles along the tampered region of an image ?

2 ビュー (過去 30 日間)
Anushka
Anushka 2015 年 2 月 8 日
回答済み: Image Analyst 2015 年 2 月 8 日
I have already determined the blocks of an image which are tampered.I want to draw a box over around this blocks and show the same in original image.Can any one please suggest any method for the same.
for i=1:64
if(abs(H(i)-Hm3(i))>1)
imshow(Block0(:,:,i); %tampered block i
[x]=FirstPositionBlock(i,:); %coordinate values of the first pixel of tampered block
end
end
If J is the original image how can i get the box drawn on the image corresponding to the tempered blocks of the image.

採用された回答

Image Analyst
Image Analyst 2015 年 2 月 8 日
Use rectangle():
rectangle('Position', [x(1), x(2), 32, 32]);

その他の回答 (2 件)

Erik S.
Erik S. 2015 年 2 月 8 日
Hi You can use the function
annotation('rectangle',[x y w h])
  1 件のコメント
Anushka
Anushka 2015 年 2 月 8 日
Thank you for your response.
I used the statement as you said but it showed the error
"Error using annotation (line 129) position values must be between 0 and 1"
The following was what I gave in my program
annotation('rectangle',[x(1) x(2) x(1)+32 x(2)+32]);

サインインしてコメントする。


Erik S.
Erik S. 2015 年 2 月 8 日
Hi, I just saw in the documentation that the inputs should be normalized. Try to divide x(1) width image width and x(2) with image height, same for rectangle width and height.
  3 件のコメント
Erik S.
Erik S. 2015 年 2 月 8 日
Hi,
Can you upload the file please and state the coordinates where you want the rectangle?
Anushka
Anushka 2015 年 2 月 8 日
I used
shapeInserter = vision.ShapeInserter;
f=int32(x(1));
g=int32(x(2));
rectangle = [g f 32 32];
J1 = step(shapeInserter, J1, rectangle);
and got small small rectangles around each block not an entire rectangle.

サインインしてコメントする。

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by