detecting rectangle in real images

Hey all,
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

댓글 수: 5

Image Analyst
Image Analyst 2014년 6월 17일
This does not look like a real world image. It looks like a computer graphics image. Please attach the real world images.
shdrone
shdrone 2014년 6월 17일
편집: shdrone 2014년 6월 17일
yes I know- I want to print this pattern and put it on moving object (for example : human) and the camera capture image including the pattern and more.
I wrote this note because I found a code that can detect this rectangle when you pass to it the pattern image only - and detect another objects in the image that isn't a rectangle when you pass to it real world image.
Image Analyst
Image Analyst 2014년 6월 17일
Okay, so....after that explanation . . . my comment remains the same.
shdrone
shdrone 2014년 6월 17일
ok - no problem.
here's an image :
thanks
shdrone
shdrone 2014년 6월 18일
Do you have a solution for this image?

댓글을 달려면 로그인하십시오.

답변 (4개)

Image Analyst
Image Analyst 2014년 6월 18일

1 개 추천

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.

댓글 수: 2

shdrone
shdrone 2014년 6월 18일
Hi,
I think it's working good (I tested some images).
my question : can this code give me the coordinates of the 4 corners of the rectangle or just the Centroid?
Thanks for your help
Image Analyst
Image Analyst 2016년 5월 21일
No it can't (and that's my code so I should know). But I have an updated demo, attached, that can.

댓글을 달려면 로그인하십시오.

Spandan Tiwari
Spandan Tiwari 2014년 6월 19일

0 개 추천

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
Elizabeth Rocha 2016년 5월 21일
편집: DGM 2023년 2월 14일

0 개 추천

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

댓글 수: 3

Ayush singhal
Ayush singhal 2021년 4월 20일
Can you tell how to generate rectangular stripes with fixed period and width of the stripes should be half of period.
Image Analyst
Image Analyst 2021년 4월 20일
@Ayush singhal, try rectpuls() if you have the Signal Processing Toolbox. Otherwise create one pulse using ones() and zeros() and then replicate it as many times as you want with repmat.
Ayush singhal
Ayush singhal 2021년 4월 21일
But I need stripes as a image not like pulses. stripes like black white black white black white.....
I think this needs image processing tool.

댓글을 달려면 로그인하십시오.

Matt J
Matt J 2021년 4월 20일
편집: Matt J 2021년 4월 20일

0 개 추천

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.
load Image
C=bwpropfilt(all(Image<50,3),'ConvexArea',1);
D=bwareafilt( bwconvhull(C)-C>0.5 ,1);
xy=fliplr(pgonCorners(D,4)); %corner coordinates
imshow(Image);
hold on
scatter(xy(:,1), xy(:,2),30,'r','filled')
hold off

카테고리

질문:

2014년 6월 17일

편집:

DGM
2023년 2월 14일

Community Treasure Hunt

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

Start Hunting!

Translated by