JMPにおける象の足の画像解析これは象の足の底の写真です。あなたがこの絵を見て推測するかもしれないように、これは非常に幸せな象ではありません。飼育下で飼育されているゾウは、舗装などの硬い地面の上を歩いていることがよくあります。これは彼らが慣れ親しんできた素材ではなく、象の足が設計されたものでもありません。その結果、この象は彼の足の傷を開発しました、そして、いくつかのケースでは、それらの傷はさらに感染するようになりました。この象の世話人は治療を提供していますが、象は足を踏み続けているのでさらなるダメージを与えます。それで、世話人は治療が全く役立っているかどうか疑問に思われます。

私はこの写真のコピーを画像解析についてのこの質問と一緒に渡されました: 治療がプラスの効果をもたらしているかどうかを経時的に決定できるように、足の状態を定量的に測定する方法はありますか?
画像を見ると、足のすべての領域が基本的に3つのカテゴリのうちの1つに分類されることがわかります。
茶色がかった色の部分があり、それは象の足の通常の色を表しています。それらの地域は健康です。オレンジ色の濃い部分があります。それらは傷を開発した分野です。それから傷の中に白っぽい部分があります。それらは、潰瘍が感染症に発展し、そして今では小娘でいっぱいになっている分野です。足全体をこれら3つのバケツに分類することで、足の状態の尺度を得ることができると感じました。結果を歪めないように、背景、つまり足の裏が見えない部分を無視することが重要です。
画像をJSL(JMP Scripting Language)に読み込み、画像から次のようにピクセル値を取得しました。赤 、緑そして青 ( RGB )別々の行列としての値。それから、これらの個々の行列を3つの色成分すべてを表す1つの行列に変換できます。
img = 新しいイメージ ( "elephantFoot.jpg" ;
{r、g、b} = img << getPixels( "RGB" ;
colr = RGBColor (r、g、b)。
しかし、多くの場合、RGB以外の配色で色を分析することをお勧めします。だから私は本当にカラースキームと呼ばれる配色の色が欲しい HLS これは色相 、明るさそして飽和 。色相は基本的に色の濃淡、明度は明るさ、彩度は白の色とは対照的に色の量です。幸い、JMPはRGBからHLSへの変換方法を提供します。
{色相、光、土} = ColorToHLS (colr);
HLSに色が入ったので、ピクセル値のJMPデータテーブルを作成できます。
dt = 新しいテーブル ( 「ピクセルデータ」 、
newColumn ( 「色相」 、設定値(色相))、
newColumn ( 「点灯」 設定値(点灯))
newColumn ( 「土」 、設定値(sat))
;
これを行う理由は、私が自分のデータを分析するためにJMPの統計的な力の一部を使用できるようにするためです。私は自分の色の値の内訳について興味があるので、私は作成することにしました分布各色成分の。
分布(連続分布( カラム (:hue)、外れ値ボックスプロット( 0 ));
分布(連続分布( カラム (:lit)、外れ値ボックスプロット( 0 ));
分布(連続分布( カラム (:sat)、外れ値ボックスプロット( 0 ));
これが結果です。

Distributionを見れば、データ内でどの値を探すべきかを推測して、どのピクセルが茶色、オレンジ色、または白色であるかを識別できます。データテーブルのデータ行で表される各ピクセルを処理し、それぞれを分類することができます。私はそれから私のを報告することができます結果 。

レポートを生成するために、欠けている値(背景領域を表すすべてのピクセル)をすべて選択し、それらを非表示/除外に設定しました。それから私は自分のピクセルデータテーブルから要約テーブルを生成しました。グラフビルダーを使用してグラフを生成できます。
その結果、足の約半分がよく整備されています。正常ではない半分については、約30%が潰瘍を発症し、他の20%が感染しています。足の状態を定量化できるようになりました。時間をかけてこれを行うことによって、私たちは足の状態を判断し、治療が助けているかどうかを知ることができます。
象の足のイメージは、という組織を通して私のところにやって来ました。ワイルドトラック 。WildTrackは、絶滅の危機に瀕している種の保護だけでなく、野生の動物の全体的な幸福にも取り組んでいます。
WildTrackは、今後のWebキャストで紹介されるJMPのお客様です。分析的に言えば 。このブログ記事が面白いと思われる場合は、登録してWebキャストに参加することをお勧めします。私はあなたに彼らの話が常に魅力的で有益であることをあなたに保証することができます。そしていつもどおり、あなたがどう思うか私に教えてください。
John Ponteは書きました:Sandeep、私の前の記事に掲載されたリンク...ジョンポンテ書きました:
Sandeep、私の前の応答で掲示されたリンクは技術を説明するビデオへのリンクです( https://www.youtube.com/watch?v=wSkUwgNbv2g ) JMP File Exchangeにも役立つJSLコードがいくつかあります。Scriptsの下のImageToDatatable.jslを探します( https://community.jmp.com/docs/DOC-6100 ) これは、画像を開いてピクセル値からデータテーブルを生成する方法を示します。あるいは、Image Analyzerを使ってデータテーブルを作成することもできます( https://community.jmp.com/docs/DOC-7181 )
ところで、あなたがディスカバリー(2週間でノースカロライナ州キャリー)に来ているならば、私と話しに来てください、そして、私はあなたを助けることができます。私はDeveloperワークステーションにいるだけでなく、さまよいます。
Sandeepは書きました:ジョン、あなたがそれについてのチュートリアルビデオがあります...サンディープ書きました:
ジョン、私がこのテクニックを学ぶために作ったチュートリアルビデオはありますか?
John Ponteは書きました:ところで、JMPはYouTubeのビデオを公開しました...ジョンポンテ書きました:
ちなみに、JMPは私のYouTubeビデオを公開しました。象の足を分析するプロセスを説明しています。プロセスに関する詳細が含まれています。この投稿が面白いと感じた場合は、ビデオもぜひご覧ください。
それはここで見つけることができます: https://www.youtube.com/watch?v=wSkUwgNbv2g
楽しい!
John Ponteは書きました:Rodrigo、JMPは正規化されたcolで動作します...ジョンポンテ書きました:
ロドリゴ、
JMPは正規化された色空間で機能します。つまり、すべての値は0.0から1.0の間です。私の色相分布を見ると、私の値の大部分は0.125以下です。ただし、0.9を超える値もあります。それで、それは私が私の色を分けるために私がどんな価値を探すべきであるかという考えを与えます。
JSLでする必要があるのは、色相と明度の値を調べるために各行(ピクセルを表します)をループ処理することです。あなたのケースでは、あなたは緑、黄色と茶色を探しているでしょう。黄色と茶色はどちらも同量の赤と緑で構成されているため、色相についても非常によく似た値になります。それらはあなたの明るさ、またはこの場合光の値によって区別されます。黄色は茶色よりも明度の値が高くなります。緑は黄色や茶色よりも高い色相値を持ちます。そのため、色相と明度の値を使用して、色を区別できるはずです。
光の分布を調べて、3つのやや異なるグループがあるかどうかを確認します。最も高い値はおそらくあなたの黄色いピクセルであり、最も低い値はおそらくあなたの茶色いピクセルであり、その間にあるものはおそらくあなたの緑色のピクセルです。それから始めて、それがあなたに正しい答えを与えるかどうか確かめてください。あなたはあなたの答えを検証するために私が象の足で行ったのと同じ方法で新しい画像を作り出すことができます。正しい答えが得られない場合は、比較で値の範囲を調整することができます。
これが役に立つことを願っています!
ロドリゴは書きました:親愛なるジョン、私はあなたのスクリプトに従って、そして得ました...ロドリゴ書きました:
ジョーンへ、
私はあなたのスクリプトをたどり、H、L、Sのピクセル値を得ました。それでは、各ピクセルを処理して、緑色、黄色、茶色の色を認識する必要があります。これをどうやってやるの?私はこの部分を見失っています: "Distributionを見れば、どのピクセルが茶色、オレンジ色、白色であるかを特定するために私のデータでどのような値を探すべきかについてよく推測できます。データテーブルのデータ行で表される各ピクセルを処理し、それぞれを分類することができます。結果を報告することができます。」
何かアドバイスは大歓迎です。ありがとうございます。
John Ponteは次のように書いています:一言で言えば - 手動で!私はたくさんのを受けます...ジョンポンテ書きました:
一言で言えば - 手動で!どのようにして画像内の関心のある領域を特定できるかを尋ねる人々からたくさんの画像を受け取ります。残念ながら、私は完全な解決策を開発するために私がしたい、または必要とする時間を費やすことができません。だから私は彼らがどのようにそれをさらに発展させることができるかについてのアイデアと共に彼らに迅速な解決策を与えることを試みる。手っ取り早い解決策は、他のソフトウェアパッケージ(私はGimpを使いました)を使って単に背景を隠すことでした。しかし、JMP / JSLでは、あなたはあなたのために象の足の端を識別するかもしれないエッジ検出のための異なるテクニックを開発することができます。実際、私はWildTrackのために私が行ったいくつかの作品でこの例を示しました。そこでは彼らは画像の中に動物の足跡を識別します。あなたはこれに関するビデオをここで見つけることができます: http://www.youtube.com/watch?v=VjjcdCDXx9M
スコットは書きました:すばらしい仕事ジョン!JMPができることに驚きました...スコット書きました:
ジョン、お疲れ様でした。JMPがそのような多様なアプリケーションに使えることに驚きました。
どうやって画像の背景を取り除いたのか興味があります。背景が不均一な場合、どのようにして背景ピクセルを識別しましたか?
John Ponteは書きました:まあ、まず私に神話を払拭させてください…ジョンポンテ書きました:
さて、最初に私は私が専門家であるという神話を払拭させてください!あなたが私の上司に会えば私はあなたが私がいると思うことを彼に言うことを勧めます。と言ってくれてありがとう。
次に、私はMATLABに精通していますが、2つの製品間で有効な比較を行うのに十分な知識があるとは思っていません。私もMATLABを使用しているJMPユーザーの数人に話を聞いたが、彼らはそれに満足しているようだ。
統計的な機能に加えて、JMPで私が本当に好きな機能の1つはJMPのスクリプト言語、JSLです。この記事では、画像をJMPに取り込み、JSLを使用してそれをデータ表に変換する方法を説明します。画像をデータとして取得すると、JMPの統計的な力をすべて利用できるようになります。たとえば、判別分析やクラスタリングなどを使用して画像を分析できます。私は現在このトピックに関する本を読んでいます。それはF. Brent NealとJohn C. RussによってMeasuring Shapeと呼ばれています。だから私はこれらの機能の組み合わせがJMPを画像処理のための強力なツールにすると思います。これにより、ユーザーは実際に機能を実装しなくても独自のソリューションを作成できます。
両方とも書いた:こんにちはジョン、素晴らしい記事。私は驚いています... Bothraより書きました:
こんにちはジョン、
素晴らしい投稿です。私はJMPの能力に驚いています。エキスパートとして、JMPの画像処理機能とMatlabのような専用ソフトウェアをどのように比較しますか。
Sky&Zoeは、次のように書いています。スカイ&ゾーイ書きました:
これは、病理学の治療における意思決定を改善するために、JMPの分析能力をどのように使用できるかを示す良い例です。そんなに多くの医用イメージングはまだ定量化よりもむしろ専門家の視覚的評価に頼っています。
このアプリケーションは、いったん洗練されると、創傷治癒が(またはそうでなければ)時間の経過とともに進行している方法の評価を標準化するのに素晴らしいアプリケーションを持つことができます。Johnは独創的な考え方をするための真の才能を持っています、そしてJMPイメージングのために彼がしている仕事はあらゆる分野で大きな応用があると信じています。
John Ponteは、次のように書いています。ジョンポンテ書きました:
答えが約50%正常であることが判明したとき、私は少し驚きました。しかしそれから、私は悪い部分(オレンジと白)が大きい部分として現れるのに対して、良い部分(茶色)は小さい部分として現れるように、長く、そして悪い部分を包み込むように見えるようになりました。私はあなたがより小さな領域とより小さな領域がたくさんあるのを見たとき、その認識はより大きな領域がより大きくなるようになるだろうということです。
誤差計算は良い考えです。これは私にとっては早い(しかし使える)解決策でした。この解決策と共に、私は彼らがどのようにそれを改善するかについての多くのアイデアを彼らに与えました。私は彼らの楽しみを全部取り除きたくなかった。
コメントありがとうございます。
スコットムーアは書いた:とてもクール。いくつか考えています。...スコットムーア書きました:
とてもかっこいい。いくつか考えています。目はパターンを分析するのが得意です。私は茶色が絵を見て35パーセントに近いと思ったでしょう。分析の前に最初に仮説を立て、それから比較したならば、それは面白かったでしょう。ある種の誤差計算も見たいです。非常に良いプロセスですが、問題を解決するための素晴らしい方法です。