MATLAB Answers

0

semanticse​gによるセグメンテー​ション後の画像の保存

Asked by Naoki Miyamoto on 19 Oct 2018
Latest activity Answered by Naoki Miyamoto on 20 Oct 2018
下記記述によってsemanticsegを実行した後の複数の画像をtempdirのディレクトリに保存したのですが、すべて画素値が0の画像が保存されていました。適切な画像を保存したいのですが、どのように修正すればよいでしょうか。ご助言お願い致します。
dataSetDir = fullfile(toolboxdir('vision'),'visiondata','triangleImages');
testImagesDir = fullfile(dataSetDir,'testImages');
testLabelsDir = fullfile(dataSetDir,'testLabels');
imds = imageDatastore(testImagesDir);
classNames = ["triangle","background"];
labelIDs = [255 0];
pxdsTruth = pixelLabelDatastore(testLabelsDir,classNames,labelIDs);
net = load('triangleSegmentationNetwork');
net = net.net;
tempdir=fullfile('C:\tempdir');
pxdsResults = semanticseg(imds,net,"WriteLocation",tempdir);

  0 Comments

Sign in to comment.

2 Answers

Answer by Kei Otsuka
on 19 Oct 2018
 Accepted Answer

記載して頂いた例の場合、セグメンテーションの結果得られるクラスの数は2ですので、
取り得る輝度値は0か1となります。表現可能な輝度レンジ[0 255]に対して低輝度に分布が偏っているため、
真っ黒な画像に見えているだけではないでしょうか。
  \n 
もし画像の輝度値がすべて0であれば、以下を実行した結果が0になるはずですが、
確認してみてください。
imds2 = imageDatastore(tempdir);
img = readimage(imds2, 1);
sum(img(:))

  0 Comments

Sign in to comment.


Answer by Naoki Miyamoto on 20 Oct 2018

おっしゃる通り、低輝度側に分布が偏っておりました。 ありがとうございました。

  0 Comments

Sign in to comment.