Matlab 如何正确标记图像中检测到的对象?
我试图确定并计算图像中WBC的数量,我可以使用下面的代码来确定它。但是,当我尝试标记检测到的WBC时,它显示为标记圆圈外的数字。结果附在下面 你能告诉我我在这里错过了什么吗Matlab 如何正确标记图像中检测到的对象?,matlab,image-processing,object-detection,Matlab,Image Processing,Object Detection,我试图确定并计算图像中WBC的数量,我可以使用下面的代码来确定它。但是,当我尝试标记检测到的WBC时,它显示为标记圆圈外的数字。结果附在下面 你能告诉我我在这里错过了什么吗 你有点困惑 你的做法是: 1) 计算圆并绘制它们 2) 用完全不同的方法计算圆,并将标签放在那里 使用第一种方法的结果来编写标签难道没有意义吗?你有一行代码,上面写着: [centers, radii, metric] = imfindcircles(rgb,[9 24],'ObjectPolarity','dark',
你有点困惑 你的做法是: 1) 计算圆并绘制它们 2) 用完全不同的方法计算圆,并将标签放在那里 使用第一种方法的结果来编写标签难道没有意义吗?你有一行代码,上面写着:
[centers, radii, metric] = imfindcircles(rgb,[9 24],'ObjectPolarity','dark','Sensitivity',0.86,'Method','twostage');
注意,这里写的第一件事是中心
,这暗示了这是一个非常好的东西,可以用来绘制中心
只需删除所有二进制图像内容并写入:
clc;
clear all;
close all;
rgb = imread('https://i.stack.imgur.com/WXpjH.jpg');
figure;
imshow(rgb); hold on
[centers, radii, metric] = imfindcircles(rgb,[9 24],'ObjectPolarity','dark','Sensitivity',0.86,'Method','twostage');
m = viscircles(centers,radii);
[a,b]=size(centers);
disp(a);
disp(b);
% s = regionprops(L, 'Centroid');
for k = 1:size(centers,1)
c = centers(k,:);
text(c(1), c(2), sprintf('%d', k), ...
'Color', 'w', ...
'HorizontalAlignment', 'center', ...
'VerticalAlignment', 'middle');
end
hold off
图片不见了,本页显示了一张:@YvesDaoust我想你是在开玩笑(我笑了),但以防万一,它代表白血球。这仍然不能给我们一个图像。很抱歉这个错误。我会很快更新它。再次抱歉。@YvesDaoust我更新了帖子并添加了图片。再次抱歉谢谢你的解释,你解决了问题,我现在知道我的错在哪里了。现在开始工作了。再次感谢:)
clc;
clear all;
close all;
rgb = imread('https://i.stack.imgur.com/WXpjH.jpg');
figure;
imshow(rgb); hold on
[centers, radii, metric] = imfindcircles(rgb,[9 24],'ObjectPolarity','dark','Sensitivity',0.86,'Method','twostage');
m = viscircles(centers,radii);
[a,b]=size(centers);
disp(a);
disp(b);
% s = regionprops(L, 'Centroid');
for k = 1:size(centers,1)
c = centers(k,:);
text(c(1), c(2), sprintf('%d', k), ...
'Color', 'w', ...
'HorizontalAlignment', 'center', ...
'VerticalAlignment', 'middle');
end
hold off