問題タブ [scikit-image]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
15895 参照

python - Pythonで画像をゆがめたりせん断したりする

Python を使用して、いくつかの画像を剪断および傾斜させる必要があります。この skimage モジュールに出くわしましたが、これをどのように使用するべきかを正確に理解できないようです。

後で突然気づいたように、自分のイメージを関数に渡していないため、明らかにエラーが発生しました。次に、関数が最初に画像を入力パラメーターとして使用しないことに気付きました。では、変換をどのように適用すればよいでしょうか。それとも、これは画像をゆがめたりずらしたりするために見るべき正しい機能ですか?

0 投票する
2 に答える
1170 参照

python - 地図画像の屋根の面積を計算する

私は Python での画像解析に問題がある R ユーザーです。画像の中心にある建物の面積を計算する効率的な方法は何ですか? 目標は、エッジ アルゴリズムを Google マップの静止画像に適用し、住所の屋上の表面積を計算することです。

0 投票する
1 に答える
24081 参照

python - scikit-image で numpy 配列を高精度 (16 ビット) の画像として保存

高精度 (16 ビットなど) のグレースケール .png ファイルに保存したい 2D 浮動小数点の numpy 配列を使用しています。skimage.io可能であれば、scikit-image パッケージを使用してこれを行いたいと思います。

私が試した主なことは次のとおりです。

生成:

まず、これを画像として保存してから、Python Imaging Library を使用してリロードしてみました。

生成:

そのため、どこかで (書き込みまたは読み取りのいずれかで) 精度が失われました。次に、matplotlib プラグインを試しました。

私に32ビットの浮動小数点数を与えます:

しかし、ファイルに 16 ビットの uint を保存したことを考えると、これが本当に 32 ビットであるとは思えません。誰かが私が間違っているところを指摘できれば素晴らしいことです。これを 3D 配列にも拡張したいと考えています (つまり、カラー チャネルごとに 16 ビットを節約し、画像ごとに 48 ビットを節約します)。

アップデート:

問題はimsaveにあります。画像はチャネルあたり 8 ビットです。io.imsave を使用して高ビット深度の画像を出力するにはどうすればよいですか?

0 投票する
1 に答える
837 参照

python - 可変サイズのイメージの固定長 HOG 記述子

オブジェクト検出コードに取り組んでいますが、オブジェクトのサイズは固定されていません。

(固定サイズのセルを使用するため)等しい長さのベクトルが得られないため、学習アルゴリズムを使用できません。

そこで、HOG 機能の長さを動的に割り当ててみました。

しかし、現在ではほとんどの場合、サイズのベクトルが提供2916されますが、より長いベクトル (3402要素の長さなど) も提供されることがあります。

これは、ビンのサイズとオブジェクトの形状の間に特定の比率がある場合に発生すると思いますが、正確な理由はわかりません。

手伝って頂けますか?

0 投票する
1 に答える
158 参照

python - Python プログラムの汚い並列化

ループで 2600 枚の画像を読み込み、何らかの処理を行って値を返すプログラムがあります。擬似コード:

問題は、このプロセスに約 20 ~ 30 分かかり、1 つの CPU コアしか使用していないように見えることです。おそらくリストを2つに分割することにより、これをより多くのコアで実行するための迅速で汚い方法を探しています。私はPythonについてたくさん読んだことがありますが、それは問題/解決策ですが、次に何をすべきかわかりません。どうすればいいですか?

参考までに、2009 Macbook Pro (Core 2 Duo) で Python 2.7 を使用し、Numpy Scipy Scikit-image & OpenCV を使用しています。

0 投票する
2 に答える
1107 参照

python - Pillowでフロート画像の線画を重ねる

float 画像を使用していくつかの線を描画しています。

間違った結果

ただし、行を積み重ねることはありません。両方の線画から値が加算された結果を出したいです。

期待される結果

2つのfloat画像をadd_moduloしてみました

しかし、Pillow は a を上げていますValueError: image has wrong mode(そして、それは多くの行にとって非効率的です)。

ピクセルの追加を行うために 2 つの画像を反復処理する以外に、それを行う方法はありますか?

編集:同じ問題が発生している ようscikit-imageですので、それに関連する解決策も受け入れます。

0 投票する
1 に答える
2002 参照

image - 次元が異なるが同じ数の HoG 特徴の画像を使用して分類器をトレーニングする

いくつかの画像で分類器をトレーニングしたいと思いますが、その一部は異なる次元を持っています。

それらはすべて次の次元に分類されます。

  • 100x50
  • 50x100
  • 64x72
  • 72x64

ただし、方向ビンが 9 つあり、セルあたり 8 ピクセルの場合、それぞれが 648 個の HoG 特徴を生成します。

実際には、すべての画像がこれらのサイズのいずれかになるように選択したため、トレーニングが均一になるように、最終的に同じ数の HoG 機能を持つことになります。

私がこれを選択した理由は、トレーニング画像の対象オブジェクトの縦横比が異なる場合があるためです。そのため、一部の画像ではすべての画像を同じサイズにトリミングすると、背景が多すぎます。

ここで私の質問は、HoG 機能の数が一定である限り、トレーニング画像のアスペクト比/画像サイズが何であるかは重要ですか? (私のトレーニング アルゴリズムは、HoG 機能のみを取り込みます)。

0 投票する
1 に答える
2432 参照

python - Numpy View Reshape without Copy (2D 移動/スライド ウィンドウ、ストライド、マスクされたメモリ構造)

2次元のnumpy配列(おそらくマルチ次元)として保存された画像があります。

2D スライディング ウィンドウを反映する配列のビューを作成できますが、各行がフラット化されたウィンドウ (行はウィンドウ、列はそのウィンドウのピクセル) になるように形状を変更すると、Python は完全なコピーを作成します。これは、典型的なストライド トリックを使用しており、新しい形状がメモリ内で連続していないためです。

これが必要なのは、大きな画像全体を sklearn 分類器に渡しているためです。これは、バッチ/部分適合手順がなく、完全に展開されたコピーがメモリに対して大きすぎる 2 次元マトリックスを受け入れます。

私の質問: ビューの完全なコピーを作成せずにこれを行う方法はありますか?

答えは、(1)私が見落としていたストライドまたはnumpyメモリ管理に関するもの、または(2)numpy配列を含むsklearnのような外部パッケージに対してもエミュレートできるpythonのある種のマスクされたメモリ構造のいずれかになると思いますサイトン。

メモリ内の 2D イメージの移動ウィンドウをトレーニングするこのタスクは一般的ですが、パッチを直接説明するために私が知っている唯一の試みは、Vigra プロジェクト ( http://ukoethe.github.io/vigra/ ) です。

助けてくれてありがとう。

0 投票する
1 に答える
4814 参照

python - graycomatrix scikit-image pythonのレベルパラメータ

scikit-image ツールを使用して、Matlab の画像処理アルゴリズムを Python に移行しています。また、 graycomatrixを使用してグレーレベル共起行列 ( GLCM ) を計算しています。パラメータが強度画像の最大値よりも小さい場合は問題があります( )。例えば:levelsimage.max()

出力は次のとおりです。

これは正しい、4x4 マトリックスです。しかし、 の場合levels=3、GLCM を計算できず、エラーは次のとおりです。

そしてもちろん...エラーが発生しますが、レベルが 未満の GLCM (3x3 マトリックス) を計算できるはずですimage.max()。たとえば、次の場合:

次の GLCM を取得する必要があります (Matlab で実行できます)。

巨大な画像を扱うときは、計算時間を短縮するために GLCM のレベルを下げます。に何か問題がありますか、greycomatrixそれとも私の考えが間違っていますか? 前もって感謝します。