我目前正在为我的大学从事一个项目:检测RGB图像中的花粉。
我要标记的是橙色的东西。
我设法使用imfindcircles()
来检测圆形,但是对于三角形,我找不到函数。
Im = imread('pollen10.jpg');
image_gray = rgb2gray(Im);
%% Detect circles with given radii
Rmin = 30;
Rmax = 160;
[centersDark, radiiDark] = imfindcircles(image_gray,[Rmin Rmax],'ObjectPolarity','dark','sensitivity',0.90);
%% Checking results
imshow(image_gray);
hold on
viscircles(centersDark, radiiDark,'LineStyle','-','Color','b','Linewidth',1);
hold off
如何检测三角形?
我设法得到了一个bw图像,该图像中我要计算白色多边形。到目前为止,我还没有找到容易的方法,但是我会花更多时间在搜索上
im = imread('pollen10.jpg');
BW = im(:,:,1) < 140;
cc = bwconncomp(BW);
stats = regionprops(cc, 'Centroid','Area');
centroids = cat(1,stats.Centroid);
idx = find([stats.Area] > 100);
BW2 = ismember(labelmatrix(cc), idx);
CC2 = bwconncomp(BW2);
stats2 = regionprops(CC2, 'Centroid','Area','BoundingBox','Eccentricity');
centroids2 = cat(1,stats2.Centroid);
imshow(BW2)
hold on
plot(centroids2(:,1),centroids2(:,2),'b*');