detecting rectangle in real images
19 views (last 30 days)
I want to detect and track rectangle pattern . these pattern I want to set on object which moving and captured using webcam.
So, the image will include real-world scene also - not only the pattern.
example of pattern:
I want to be able to detect the 4 corners of the white rectangle.
what about if I have black rectangle?
Thanks in advance
Image Analyst on 18 Jun 2014
Does the clutter have to be in the background? It requires a more time consuming and complicated algorithm. I'd take the green channel, threshold for dark things. Find objects in a certain size range with a certain Euler number. Then call bwboundaries() and take the inner boundary.
Spandan Tiwari on 19 Jun 2014
If your rectangle does not change orientation, you can try using normxcorr2 (in Image Processing Toolbox) with the rectangle as the template. If changes in orientation are possible you may have to use more than one templates.
Elizabeth Rocha on 21 May 2016
my code for this is :
imagen=imread('img18.jpg'); recorte=imagen(112:221,218:274); recorte2=imagen(261:309,233:317); recorte=im2bw(recorte); recorte2=im2bw(recorte2); subplot(1,3,1),imshow(imagen),rectangle('position',[218,112,56,109]);---this is for captured using webcam rectangle('position',[233,261,84,48]); subplot(1,3,2),imshow(recorte) subplot(1,3,3),imshow(recorte2) if recorte==true x=1 else x=0 end
if recorte2==true y=1 else y=0 end
Matt J on 20 Apr 2021
Edited: Matt J on 20 Apr 2021
This works for the one given image. I would need more examples to see if it's a reliable solution. It uses the FEX contribution pgonCorners which must be Downloaded.
D=bwareafilt( bwconvhull(C)-C>0.5 ,1);
xy=fliplr(pgonCorners(D,4)); %corner coordinates