grayscale画​像のSuperpix​els計算について

grayscale画像のSuperpixelsの計算について、ご教授ください。
説明分に以下のような記載があります。
[L,NumLabels] = superpixels(A,N) は、2 次元のグレースケール イメージまたは RGB イメージ A のスーパーピクセルを計算します。
Superpixelの計算では、はじめに画像をLab空間に変換する必要があると思うのですが、
grayscale画像は、どのような計算(数式)でLabに変換されるのか悩んでおります。
ご教授よろしくお願いいたします。

3 Comments

Matsuura様、
MATLABに実装されているsuper pixelの計算方法は、ご指摘の通り Radhakrishna Achantaの手法になるので、L*a*bに変換する必要があります。https://jp.mathworks.com/help/images/ref/superpixels.html 
実装についての調べ方ですが、関数の中身は自作関数か組み込み関数の違いなく、以下で確認することが可能です。
edit function_name
お問い合わせのグレースケール画像のときの処理ですが、R2021aにおいては、163行目からの"function Aout = postProcessInputImage(A,isInputLab)"で処理が行われますが、該当する部分を取り出しますと以下になります。言葉で説明すれば、グレースケールの画像(配列)を3次元方向に拡張(複製)したうえで、rgb2labでL*a*bに変換し、得られた3次元配列の先頭部分だけ取り出します。
grayscaleInput = false;
if ismatrix(A) && ~isa(A,'int16')
grayscaleInput = true;
A = repmat(A,[1 1 3]);
end
if isInputLab
:
elseif isa(A,'int16')
:
else
Aout = rgb2lab(A);
end
if grayscaleInput
Aout = Aout(:,:,1);
end
いかがでしょうか?
なお、"edit"コマンドで中がみれる場合とそうでない場合がございます。
菱田
菱田さま
ご教授頂き、感謝申し上げます。
とても納得でき、非常にスッキリいたしました。
大変、勉強になりました。
誠にありがとうございました。
Matsuyama様、 良かったです。

Sign in to comment.

Answers (0)

Products

Release

R2021a

Tags

Asked:

on 1 May 2021

Community Treasure Hunt

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

Start Hunting!