필터 지우기
필터 지우기

How to assign different color for different classes in object detection model?

조회 수: 8 (최근 30일)
Greetings, I have two classes, which are labelled as normal and cancer cells. How to draw bounding boxes with different colors that referred to each class?
newp2 = imread([pathname filename]);
[bboxes,scores,labels] = detect(detector,newp2,'Threshold',0.7);
annotations = string(labels) + ": " + string(scores);
I = insertObjectAnnotation(newp2,'rectangle',bboxes,cellstr(annotations));
figure
imshow(I)

답변 (1개)

Sachin
Sachin 2023년 4월 13일
Hi
I understand that you want to assign the different color for different classes in object detection model.
To draw bounding boxes with different colors for each class, you can modify the ‘Color’ parameter based on the class label,
Here is an example:
newp2 = imread([pathname filename]);
[bboxes,scores,labels] = detect(detector,newp2,'Threshold',0.7);
annotations = string(labels) + ": " + string(scores);
%loop through each detected object
for i=1:numel(bboxes)
label = labels(i);
bbox = bboxes(i,:);
score = scores(i);
if label=='inormal'
color = 'b'
elseif label == 'cancer'
color = 'r'
else
color = 'g'
insertObjectAnnotation(newp2,'rectangle',bboxes,cellstr(annotations),'Color',color);
end
Please refer the following page for more information about ‘insertobjectannotation’
  댓글 수: 5
Sachin
Sachin 2023년 4월 22일
Hi
Can you please tell what kind of error you are getting?
Fahmi Akmal Dzulkifli
Fahmi Akmal Dzulkifli 2023년 4월 28일
The error is the colour of the bounding boxes are same for all cells. Like in the above example, all the cells have green bounding boxes colour, includes the cancer cells. When I checked at the 'labels', it has two classes, but when to assign the colour, it only has one class only.

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

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

Start Hunting!

Translated by