How can I detect different oriented object using point features?

I have the following image with point features?
How can I display/detect object using different oriented rectangle according to the image orientation? As for example......
<<
>>

1 Comment

did you solve this issue, i trie to make the bounding box orienattion with the same detetcted

Sign in to comment.

Answers (2)

You might try Hu's image moments: http://www.youtube.com/watch?v=Nc06tlZAv_Q
But it looks like you're already using capabilities of the Computer Vision System Toolbox. Do you already have the coordinates of the green rectangles and you just need to straighten them, then extract and show the aligned image?

6 Comments

Thanks for your answer. >>>I don't have the coordinate of the green rectangle.. >>> I just have the SURF features like the first image..
>>> Actually I need to calculate exact rectangle which is adjustable according to the object orientation. As for example
>>> I did not want to use computer vision toolbox..
Did you watch the video? Why don't you want to use that toolbox? Do you not have it?
>>> Why don't you want to use that toolbox? Do you not have it? ....No I don't have.
>>>Dear Image analyst, My main questions is about rectangle. How can I draw the rectangle according to the object orientation? >>> I see the video.But the orientation of the rectangle is same. please see the image below:
To draw tilted rectangles, I think you need to use plot() rather than rectangle().

Sign in to comment.

I also want to know how to rotate the surrounding bounding box with the same angle as the object orientation, if the bounding box is used with regionprops function in MATLAB....?

5 Comments

Why does it have to be a rectangle? Why not a polygon? A polygon will more accurately give the boundaries and you can get it with
boundaries = bwboundaries(binaryImage);
Tell me what you really NEED to do.
If you want Feret diameters, see Steve Eddins's Blob on Image Processing
Hello Sir, My need is that I want to detect the objects (different shape objects) which are oriented at different angle. Ex. square oriented 45 degree can't be detected with the Area ratio of bounding box and actual area; because the surrounding bounding box is not oriented at 45 degree due to which the area of bounding box is far more and we can't get accurate area ratio for detection of that shape. I just want to know the means by which I can detect the same.
Thanking you.
Did Hu's moments, like I gave in my answer, not work?
Maybe you just need to threshold and call regionprops to get the area. I don't know because you're not sharing your image. Detection of objects can be done in different ways depending on what the object is. But usually it comes down to thresholding, possibly after some preprocessing steps, if needed.
Hello Sir, Thank you for your support. But I have not try the Hu's moments yet, I have to first understand it properly. Then, I will implement it.
I have not any specific image taken by camera. I just working on Image having different standard shapes (like square, Hexagon, rectangle with any orientation).
Thank you.
If you want to determine what shape it is, then you can just find the centroid, find the boundaries, find the distances from the centroid to the boundary points, and then look for peaks in the distance array. I'm attaching a demo.

Sign in to comment.

Commented:

on 25 Mar 2020

Community Treasure Hunt

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

Start Hunting!