イメージラベラーで特​定の色の箇所だけ、ラ​ベリングする方法

5 vues (au cours des 30 derniers jours)
Natsuo OKADA
Natsuo OKADA le 24 Avr 2019
上記の画像の赤色の部分だけ、ラベリングをしたいのですが塗りつぶし以外で方法はあるのでしょうか?

Réponse acceptée

Tohru Kikawada
Tohru Kikawada le 7 Mai 2019
Modifié(e) : Tohru Kikawada le 11 Mai 2019
赤色の部分を抽出してラベル画像化する方法があります。
ご参考になれば幸いです。
%% 画像を保存
imDir = 'images';
[~,~,~] = mkdir(imDir);
websave(fullfile(imDir,'image.png'),'https://www.mathworks.com/matlabcentral/answers/uploaded_files/215647/image.png');
%% 色のしきい値(Color Thresholder)を使って着色部分を取り出し
% 赤い部分のみ取り出すしきい値を決めてエクスポートからcreateMask関数を生成し保存
I = imread('image.png');
colorThresholder(I);
%% 着色されたラベル画像を読み込み
imds = imageDatastore(imDir);
pxDir = 'pixelLabels';
[~,~,~] = mkdir(pxDir);
for k = 1:imds.numpartitions
I = imread(imds.Files{k});
[folder,file,ext] = fileparts(imds.Files{k});
BW = createMask(I);
Ilabel = im2uint8(BW);
imwrite(Ilabel,fullfile(pxDir,[file ext]));
end
pxds = imageDatastore(pxDir);
%% イメージラベラーに読み込める形式に変換
dataSource = groundTruthDataSource(imds.Files);
ldc =labelDefinitionCreator();
addLabel(ldc,'myLabel',labelType.PixelLabel);
labelDefs = create(ldc);
labelDefs.PixelLabelID = {255};
dataFile = pxds.Files;
labelData = table(dataFile,'VariableNames',{'PixelLabelData'})
gTruth = groundTruth(dataSource,labelDefs,labelData)
%% イメージラベラーでgTruthをインポート
imageLabeler
  1 commentaire
Natsuo OKADA
Natsuo OKADA le 11 Mai 2019
ありがとうございます。

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!