Locate coordinates of black areas in image.
1 次查看(过去 30 天)
显示 更早的评论
I have been using the function below to try and find circles but for very warped images i am unable to find circles, is there an alternative to infindcircles() which would return the coordiantes of the black sections of the image?
[centers, radii, metric] = imfindcircles(img,[20 50],'ObjectPolarity','dark');
0 个评论
采纳的回答
Ameer Hamza
2020-4-16
编辑:Ameer Hamza
2020-4-16
Try this.
im = im2double(imread('image.jpeg'));
% filter the black circles from colored image
im_gray = rgb2gray(im);
mask = im_gray < 0.1;
% detect and filter the connected regions
reg = bwconncomp(mask);
pxlList = reg.PixelIdxList;
idx = cellfun(@(x) numel(x) > 1, pxlList);
pxlList(~idx) = [];
% calculate the centres of the connected regions
centres = zeros(numel(pxlList), 2);
for i=1:numel(pxlList)
[r,c] = ind2sub(size(im_gray), pxlList{i});
centres(i,:) = mean([r c]);
end
imshow(im);
hold on;
plot(centres(:,2), centres(:,1), 'r+', 'LineWidth', 4, 'MarkerSize', 10)
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!