如何更正标记图像中检测到的对象?

时间:2018-03-05 09:30:43

标签: matlab image-processing object-detection

我尝试确定并计算图像中的WBC数量,我可以使用下面的代码来确定它。但是,当我尝试标记检测到的WBC时,它会标记出圆圈外的数字。结果如下。

你能告诉我这里缺少什么吗?

The tested image

The result i've got

export default class Table extends React.Component{
    constructor(props){
      super(props)
        this.arr =  [
             {id:1, content:"content1"},
             {id:2, content:"content2"},
             {id:3, content:"content3"}

         ]

    }

     render() {

         return (
            <ul>
              {this.arr.map((element, index) => {                                     return (<TableLine 
                            data={element} 
                            onClick={this.props.onClick}
                        />)
              })}    
            </ul>
         )

    }
    }

class TableLine extends React.Component{    
  handleClick = () => {
    this.props.onClick(this.props.data.id);
  }
    render() {  
        return( 
            <li 
                onClick={this.handleClick}>
                {this.props.data.content}
            </li>
        )
    }
}

1 个答案:

答案 0 :(得分:3)

你有点困惑。

您的方法是:

1)计算圆圈,并绘制它们

2)使用完全不同的方法计算圆圈,并在其中放置标签

使用第一种方法写出标签的结果会不会有意义?你有一行代码说:

[centers, radii, metric] = imfindcircles(rgb,[9 24],'ObjectPolarity','dark','Sensitivity',0.86,'Method','twostage');

注意,那里写的第一件事是centers,它暗示这是一个很好用的东西,情节中心!

只需删除所有二进制图像内容并写入:

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

enter image description here