ホームページ  >  記事  >  バックエンド開発  >  提供されたテキストの内容に適合する、質問ベースのタイトルをいくつか示します。 * **Matplotlib でプロットすると OpenCV イメージが異なって見えるのはなぜですか?** * **次の場合に色の不一致が発生するのはなぜですか

提供されたテキストの内容に適合する、質問ベースのタイトルをいくつか示します。 * **Matplotlib でプロットすると OpenCV イメージが異なって見えるのはなぜですか?** * **次の場合に色の不一致が発生するのはなぜですか

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-24 18:11:19630ブラウズ

Here are a few question-based titles that fit the content of your provided text:

* **Why Does My OpenCV Image Look Different When Plotted with Matplotlib?** 
* **Why Is There a Color Discrepancy When Using OpenCV and Matplotlib Together?**
* **How to Cor

画像読み込み時の OpenCV カラー変換の不一致

Python OpenCV を使用してカラー画像を読み込み、表示しようとすると、予期しない色の偏差が発生する可能性があります結果の画像で。この問題は、OpenCV と Matplotlib ライブラリの間のデフォルトの色の順序付けスキームの違いが原因で発生します。

問題の説明

ユーザーが提供したコードには、色のロードが含まれています。 OpenCV の cv2.imread() 関数を使用して画像を取得し、 cv2.cvtColor() を使用してグレースケールに変換します。その後、元のイメージとグレースケール イメージの両方が、Matplotlib の plt.imshow() 関数を使用してプロットされます。 IMREAD_COLOR フラグを使用しているにもかかわらず、プロットされたイメージでは歪んだ色が表示されます。

根本的な問題

デフォルトでは、OpenCV は青、緑、赤 (BGR) の色の順序を使用します。画像は、Matplotlib が赤、緑、青 (RGB) を使用します。 OpenCV によってロードされた画像が Matplotlib で表示されると、チャネルが反転され、色の不一致が生じます。

解決策

この問題を解決するには、ユーザーが明示的に行うことができます。 cv2.cvtColor() 関数を使用して、OpenCV からロードされた BGR イメージを RGB に変換します。変換された RGB イメージは、Matplotlib でのプロットに使用できます。

<code class="python">import cv2
import matplotlib.pyplot as plt

# Load image in BGR
img = cv2.imread('lena_caption.png', cv2.IMREAD_COLOR)

# Convert BGR to RGB
RGB_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# Plot RGB image in Matplotlib
plt.imshow(RGB_img)
plt.title('Original Image in RGB')
plt.xticks([]), plt.yticks([])
plt.show()</code>

以上が提供されたテキストの内容に適合する、質問ベースのタイトルをいくつか示します。 * **Matplotlib でプロットすると OpenCV イメージが異なって見えるのはなぜですか?** * **次の場合に色の不一致が発生するのはなぜですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。