問題タブ [imread]

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 投票する
0 に答える
713 参照

numpy - TIFF を配列に変換できません

.tif ファイルの 2 つのデータセットがあります。の場合、 と を使用しdata_1て .tif イメージを配列に変換できます。しかし、他のデータセットについては、同じ関数を適用すると、.tif ファイルが float 配列に変換されません。scipy.imread()np.arraydata_2

TIFF から配列に変換するにはどうすればよいですか?

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

python - Python:opencv(cv2)画像スライスが機能しない?

経由でグレースケールで読み込まれた画像がありimg = cv2.imread("myimg.jpg", 0)ます。

imgロード後の の値を調べると、ndarray次のようになります。

cropped = img[top:bottom, left:right]where topbottomleftおよびrightare all integersを使用して、そのチャンクを切り取ろうとしています。

ただし、cropped は空の として巻き上げられますndarray

これはなぜでしょうか?

0 投票する
0 に答える
1208 参照

matplotlib - vmin、vmax が plt.imshow の表示範囲を変更しない (iPython ノートブック)

私は画像を操作していますが、画像が配列にあるのとまったく同じように正しく表示される必要があります。何らかの理由で iPython で画像を表示すると、画像が変更されます。この問題に対するすべての解決策には、vmin と vmax を適切な値に変更することが含まれますが、何らかの理由でイメージにまったく影響しません。

画像からわかるように、最初の 1 つだけがそのまま表示されます。それらの残りの部分は奇妙な色をしており、vmin と vmax でタイプまたはダイナミック レンジを変更しても、出力には影響しないようです。

これが私のコードです:

そして、ここに私が得る画像があります:

結果: 最初の 3 つの画像表示

結果: 次の 3 つの画像

0 投票する
0 に答える
1225 参照

c++ - OpenCV: アルファ チャンネルで 8 ビット深度の画像を読み込む

取るフラグと少し混乱していcv::imreadます。

私の目標は、このアルファ チャネルを持つアルファ チャネルを持つイメージをロードすることです (つまり、 としてCV_8UC4)。同時に、それらを常に 8 ビットの深さでロードしたいと考えています。

まず、以下を使用してみました。

これにより、アルファ チャネルが取り除かれ、8 ビット イメージが返されます。透明な TIF の場合、すべてが適切に見えますが、透明な部分だけが黒くなっています。ただし、透明な PNG の場合は、完全に間違っているように見えます。

次に試したのは:

結果は とまったく同じでしたcv::IMREAD_COLOR。次の試行:

アルファ チャンネルはまだありませんが、画像の元の深度が保持されます。

それから私は試しました:

これは、PNG画像でも機能しました。ただし、現在は画像のビット深度が維持され、8 ビットに変換されません。これは、追加の手順で変換する必要があることを意味します。これは非常に効率的ではないかもしれないと思います。

また、OpenCV ドキュメントのフラグの説明も確認しました。そこには次のように書かれています。

したがって、明らかにIMREAD_UNCHANGEDアルファチャンネルのみをサポートしています。しかし、それでIMREAD_ANYCOLOR4 チャンネルの画像を読み取れない場合はどうすればよいでしょうか。

アルファ チャネルを 8 ビット深度に変換した画像を読み込む方法はありますか?

別のことは、私にはかなり奇妙に思えます: オプションを使用してIMREAD_UNCHANGED、アルファ チャネルで RGB 画像を読み取ると、結果は RGBA のように見えます。アルファ チャネルなしで RGB 画像を読み取ると、形式は BGR のようです。チャネルの順序が異なるのはなぜですか? OpenCV は常に BGR 順序付けを使用していると思いました。

次の例は、アルファ チャネルを含む PNG が正しくロードされた場合と正しくロードされていない場合の例です。

ここに画像の説明を入力 ここに画像の説明を入力