Locate rectangles in an image and segment

3 次查看(过去 30 天)
I'm trying to create a program that identifies all the cells on a solar panel and creates an image of each indivudal cell. An example image:
untitled.jpg
The cells are regularly shaped and spaced, and all images are uniform in size and magnification, but the panels are not located or oriented uniformly, so hardcoding the segmentation is not an option. I was thinking I could find an edge, rotate the image, then hardcode a grid to segment the image. So far, I have had difficulty locating the (near) vertical lines in the image, and houghlines tends to place lines on the fainter busbar lines before placing lines over the clearer lines separating each row of cells, or around the edge of the panel, seen here:
I've tried lowering the threshold in houghpeaks, with the following results:
Any help would be appreciated.

采纳的回答

Matt J
Matt J 2019-6-21
编辑:Matt J 2019-6-21
This seems to emphasize the vertical lines well enough. houghlines shouldn't have too much difficulty with this,
load image
B=edge( medfilt2(A,[7,1]) );
B=bwareafilt(B,[100,inf]);
B=imclose(B,ones(7,3));
imshow(B)
Capture.PNG

更多回答(0 个)

产品


版本

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by