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

2 vues (au cours des 30 derniers jours)
Anushka
Anushka le 8 Fév 2015
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.

Réponse acceptée

Image Analyst
Image Analyst le 8 Fév 2015
Use rectangle():
rectangle('Position', [x(1), x(2), 32, 32]);

Plus de réponses (2)

Erik S.
Erik S. le 8 Fév 2015
Hi You can use the function
annotation('rectangle',[x y w h])
  1 commentaire
Anushka
Anushka le 8 Fév 2015
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]);

Connectez-vous pour commenter.


Erik S.
Erik S. le 8 Fév 2015
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 commentaires
Erik S.
Erik S. le 8 Fév 2015
Hi,
Can you upload the file please and state the coordinates where you want the rectangle?
Anushka
Anushka le 8 Fév 2015
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.

Connectez-vous pour commenter.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by