<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>「cv2」タグの記事一覧Python Tech</title>
	<atom:link href="https://tech.nkhn37.net/tag/cv2/feed/" rel="self" type="application/rss+xml" />
	<link>https://tech.nkhn37.net</link>
	<description>Python学習サイト</description>
	<lastBuildDate>Sun, 11 Jan 2026 03:15:45 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://tech.nkhn37.net/wp-content/uploads/2021/01/cropped-lion-normal-clear-1-32x32.png</url>
	<title>「cv2」タグの記事一覧Python Tech</title>
	<link>https://tech.nkhn37.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【Python】OpenCVによる画像入出力の基本 ~imread, imwrite~</title>
		<link>https://tech.nkhn37.net/python-opencv-imread-imwrite/</link>
					<comments>https://tech.nkhn37.net/python-opencv-imread-imwrite/#respond</comments>
		
		<dc:creator><![CDATA[naoki-hn]]></dc:creator>
		<pubDate>Fri, 12 Apr 2024 20:00:00 +0000</pubDate>
				<category><![CDATA[OpenCV]]></category>
		<category><![CDATA[bgr]]></category>
		<category><![CDATA[cv2]]></category>
		<category><![CDATA[imread]]></category>
		<category><![CDATA[imwrite]]></category>
		<guid isPermaLink="false">https://tech.nkhn37.net/?p=10731</guid>

					<description><![CDATA[PythonでOpenCVを使って画像入出力する方法について解説します。 OpenCVによる画像入出力 OpenCVは、有名なコンピュータービジョンのライブラリです。OpenCVのPythonバインドであるcv2モジュー [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Pythonで<span class="marker"><strong>OpenCVを使って画像入出力する方法</strong></span>について解説します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">OpenCVによる画像入出力</h2>



<p class="wp-block-paragraph">OpenCVは、有名なコンピュータービジョンのライブラリです。OpenCVのPythonバインドである<code>cv2</code>モジュールを使用することで、PythonでOpenCVの機能を使用することができます。</p>



<p class="wp-block-paragraph">OpenCVでは、画像の入出力のための関数として、<span class="marker"><strong><code>imread</code></strong></span>関数と<span class="marker"><strong><code>imwrite</code></strong></span>関数を提供しています。これらの関数は様々なファイルフォーマット(BMP, PNG, JPEG, TIFF等)の画像をサポートしています。</p>



<p class="wp-block-paragraph">この記事では、Pythonで<span class="marker"><strong>OpenCVを使って画像入出力する方法</strong></span>について紹介します。</p>



<h3 class="wp-block-heading jinr-heading d--bold">cv2モジュールでの画像表現</h3>



<p class="wp-block-paragraph">OpenCVのPythonバインドである<code>cv2</code>モジュールでは、画像はNumpyの配列(<code>ndarray</code>)を使って表現されています。NumPyは、Pythonで高速な数学的演算を可能にするライブラリで、特に大量のデータに対する効率的な操作と計算を提供します。</p>



<p class="wp-block-paragraph">OpenCVにおいて、カラー画像は以下のようなデータ構造として表現されています。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img fetchpriority="high" decoding="async" width="766" height="498" src="https://tech.nkhn37.net/wp-content/uploads/2024/04/image-9.png" alt="OpenCVの画像表現" class="wp-image-10741" style="width:469px;height:auto" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/04/image-9.png 766w, https://tech.nkhn37.net/wp-content/uploads/2024/04/image-9-300x195.png 300w" sizes="(max-width: 766px) 100vw, 766px" /></figure>
</div>


<p class="wp-block-paragraph"><code>img</code>という画像配列を作成したとしましょう。この時、水平(列)方向を<code>x</code>、垂直(行)方向を<code>y</code>、カラーチャンネルを<code>channel</code>とすると、各ピクセルにアクセスするための引数の位置としては<code>img[y, x, channel]</code>となります。例えば、<code>img[0, 1, 2]</code>とすると、<code>0</code>行、<code>1</code>列の赤(<code>R</code>)チャンネルのピクセル値を表します。</p>



<p class="wp-block-paragraph">OpenCVでは、<span class="marker">BGRというカラー順が標準的な構造</span>となっています。RGBという順番の方が感覚的に分かりやすい人がいると思いますが、これはOpenCVが開発され始めた当初、BGRの色順が一般的なハードウェアで採用されていたなどの背景によるもので、互換性を保つためにBGRが標準となっています。ただし、必要に応じて<code>cv2.cvtColor(image, cv2.COLOR_BGR2RGB)</code>というようにRGB順に変換することも可能です。</p>



<p class="wp-block-paragraph">実際のどのようなデータ構造になるか簡単な例で確認してみましょう。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import cv2
import numpy as np

# NumPyのndarrayを生成
img = np.ones((5, 5), dtype=np.uint8)

print(img)
print(type(img))
print(img.dtype)
print(img.shape, "\n")

# グレースケール → カラー画像へ変換
img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)

print(img)
print(type(img))
print(img.dtype)
print(img.shape)</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">【実行結果】
[[1 1 1 1 1]
 [1 1 1 1 1]
 [1 1 1 1 1]
 [1 1 1 1 1]
 [1 1 1 1 1]]
&lt;class 'numpy.ndarray'>
uint8
(5, 5) 

[[[1 1 1]
  [1 1 1]
  [1 1 1]
  [1 1 1]
  [1 1 1]]

 [[1 1 1]
  [1 1 1]
  [1 1 1]
  [1 1 1]
  [1 1 1]]

 [[1 1 1]
  [1 1 1]
  [1 1 1]
  [1 1 1]
  [1 1 1]]

 [[1 1 1]
  [1 1 1]
  [1 1 1]
  [1 1 1]
  [1 1 1]]

 [[1 1 1]
  [1 1 1]
  [1 1 1]
  [1 1 1]
  [1 1 1]]]
&lt;class 'numpy.ndarray'>
uint8
(5, 5, 3)</pre>



<p class="wp-block-paragraph">上記サンプルでは、NumPyでグレースケール画像を想定して5×5画像配列を<code>ones</code>関数を使用して作成しています。この配列は、NumPyの<code>numpy.ndarray</code>型の配列です。<code>dtype</code>で型を確認すると<code>uint8</code>となっています。また、配列形状は<code>shape</code>を使って確認でき<code>(5, 5)</code>であることが確認できます。<code>dtype</code>や<code>shape</code>は画像の情報を得るうえでよく使用するので覚えておきましょう。</p>



<p class="wp-block-paragraph">このグレースケール画像を<code>cv2.cvtColor</code>関数を使用して、カラー画像に変換しています。<code>shape</code>を見てみると分かりますが<code>(5, 5, 3)</code>です。最初に説明したように水平(列)方向を<code>x</code>、垂直(行)方向を<code>y</code>、カラーチャンネルを<code>channel</code>とすると<code>(y, x, channel)</code>となっています。また、カラーチャンネルの順番はBGRであることに注意してください。</p>



<p class="wp-block-paragraph">OpenCVでは、このように画像表現がされることをまずは理解しておいてください。以降では、<code>imread</code>や<code>imwrite</code>を使用した画像入出力の具体例を紹介します。</p>



<h3 class="wp-block-heading jinr-heading d--bold">imread、imwriteによる画像の読み込み、書き込み</h3>



<p class="wp-block-paragraph">ここでは、<span class="marker"><strong><code>imread</code></strong></span>関数及び<span class="marker"><strong><code>imwrite</code></strong></span>関数を用いた画像の読み込みや書き込みについて紹介します。</p>



<h4 class="wp-block-heading jinr-heading d--bold">基本的な使い方</h4>



<p class="wp-block-paragraph"><code>imread</code>を使用して画像を読み込み、<code>imwrite</code>を使用して別ファイルとして書き込みを行ってみましょう。<code>imread</code>や<code>imwrite</code>は、以下のように使用します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import cv2

# 画像ファイルを読み込む
img = cv2.imread("lena.jpg")

print(img)
print(type(img))
print(img.dtype)
print(img.shape)

# 画像ファイルを書き込む
cv2.imwrite("lena_output.png", img)</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">【実行結果】
[[[128 138 225]
  [127 137 224]
  [126 136 224]
  ...
  [126 145 236]
  [110 129 220]
  [ 86 104 197]]

 ...(途中省略)...

 [[ 56  19  81]
  [ 58  21  83]
  [ 68  34  98]
  ...
  [ 81  68 176]
  [ 81  72 183]
  [ 84  74 188]]]
&lt;class 'numpy.ndarray'>
uint8
(512, 512, 3)</pre>



<p class="wp-block-paragraph">まず、OpenCVの機能を使用するために<code>cv2</code>モジュールをインポートしておきます。</p>



<p class="wp-block-paragraph">画像ファイルを読み込むには、<code>cv2.imread("lena.jpg")</code>という形で、JPG画像ファイルのパスを指定します。今回の例では、画像処理でよく出てくるレナの画像を使用していますが、皆さんのお好きな任意の画像を指定してください。<code>imread</code>で指定するパスは、絶対パスや相対パスで指定できます。</p>



<p class="wp-block-paragraph">取得した画像の<code>dtype</code>、<code>shape</code>等を確認して見てみると<code>uint8</code>の<code>(512, 512, 3)</code>のカラー画像となっていることが分かります。</p>



<p class="wp-block-paragraph">上記の例では、読み込んだJPGファイルを別のPNGファイルへ保存しています。画像ファイルの書き込みの際には、<code>cv2.imwrite("lena_output.png", img)</code>という形で、出力ファイルパスと画像データ(<code>img</code>)を渡します。</p>



<p class="wp-block-paragraph"><code>imwrite</code>は、BGRまたはグレースケールの画像である必要があり、出力に指定する画像フォーマットに適した値である必要があります。例えば、BMP画像であれば1チャンネル 8bitといった形です。</p>



<h4 class="wp-block-heading jinr-heading d--bold">オプションを指定する</h4>



<p class="wp-block-paragraph"><code>imread</code>を使用する際に、読み込みのオプション指定をすることが可能です。例えば、元ファイルがカラーである画像をグレースケールで読み込む場合は、以下のようにします。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import cv2

# 画像ファイルを読み込む
img = cv2.imread("lena.jpg", cv2.IMREAD_GRAYSCALE)

print(img)
print(type(img))
print(img.dtype)
print(img.shape)

# 画像ファイルを書き込む
cv2.imwrite("lena_gray_output.png", img)</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">【実行結果】
[[163 162 161 ... 170 154 130]
 [162 162 162 ... 173 155 126]
 [162 162 163 ... 170 155 128]
 ...
 [ 43  42  51 ... 103 101  99]
 [ 41  42  55 ... 103 105 106]
 [ 42  44  57 ... 102 106 109]]
&lt;class 'numpy.ndarray'>
uint8
(512, 512)</pre>



<p class="wp-block-paragraph">上記のように、<code>cv2.IMREAD_GRAYSCALE</code>というオプション情報をファイルパスに続いて指定することでグレースケールで読み込むことができます。<code>shape</code>で形状を見てみると<code>(512, 512)</code>となっておりグレースケールの画像となっていることが分かります。<code>imwrite</code>で出力した画像を見ていただければグレースケールに変換されていることが確認できます。</p>



<p class="wp-block-paragraph">なお、デフォルトのオプションとしては、<code>cv2.IMREAD_COLOR</code>となっています。他にも指定できるオプションがいくつかありますが、それらのオプションについては、OpenCVのドキュメントにある<a href="https://docs.opencv.org/4.x/d8/d6a/group__imgcodecs__flags.html#ga61d9b0126a3e57d9277ac48327799c80" target="_blank" rel="noreferrer noopener">ImreadModes</a>の部分を参照してください。</p>



<h3 class="wp-block-heading jinr-heading d--bold">画像をbytearrayに変換する</h3>



<p class="wp-block-paragraph">画像データを扱う際にバイト列に変換して扱うと便利なケースがあります。例えばデータをシリアライズしての保存したり、ネットワーク越しに送受信したりする場合等です。ここでは、画像として読み込んだデータを<code>bytearray</code>に変換する方法を紹介します。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">import cv2
import numpy as np

# 画像ファイルを読み込む
img = cv2.imread("lena.jpg")
img_shape = img.shape
img_dtype = img.dtype

# bytearrayに変換する
bgr_bytearray = bytearray(img.tobytes())
print(bgr_bytearray)
print(len(bgr_bytearray), "\n")

# bytearrayからnumpy.ndarrayに戻す
# bgr_img = np.array(bgr_bytearray, dtype=np.uint8).reshape(512, 512, 3)
bgr_img = np.array(bgr_bytearray, dtype=img_dtype).reshape(img_shape)
print(bgr_img)
print(bgr_img.shape)

# 画像ファイルを書き込む
cv2.imwrite("lena_output_byte.png", bgr_img)</pre>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">【実行結果】
bytearray(b'\x80\x8a\xe1\x7f\x89\xe0~\x88\xe0}\x87
...(途中省略)...
\x18b=\x1ddC#jI,uK0zM4~N8\x86[E\x97S@\x97VE\xa0YJ\xacSF\xacQD\xb0QH\xb7TJ\xbc')
786432 

[[[128 138 225]
  [127 137 224]
  [126 136 224]
  ...
  [126 145 236]
  [110 129 220]
  [ 86 104 197]]

...(途中省略)...

 [[ 56  19  81]
  [ 58  21  83]
  [ 68  34  98]
  ...
  [ 81  68 176]
  [ 81  72 183]
  [ 84  74 188]]]
(512, 512, 3)</pre>



<p class="wp-block-paragraph">上記例では、読み込んだ画像をPythonの<code>bytearray</code>へ変換し、その後に元に戻して画像出力する一連の流れを実行しています。</p>



<p class="wp-block-paragraph"><code>bytearray</code>へ変換する際には「<code>bgr_bytearray = bytearray(img.tobytes())</code>」というように読み込んだ画像(<code>img</code>)を渡しています。ここで渡す際には<code>tobytes()</code>でバイト列にしてから渡しています。</p>



<p class="wp-block-paragraph"><code>bytearray</code>からNumPyの<code>ndarray</code>に戻す際には「<code>bgr_img = np.array(bgr_bytearray, dtype=img_dtype).reshape(img_shape)</code>」というように<code>numpy.array</code>を使用します。この際には、<code>dtype</code>で適切なデータ型を渡すことが重要です。また、形状を戻すには<code>reshape</code>に形状を渡します。</p>



<p class="wp-block-paragraph">今回の例では読み込み時に変数に情報を取得しておいて渡しましたが、コメントアウトしてある行のように「<code>bgr_img = np.array(bgr_bytearray, dtype=np.uint8).reshape(512, 512, 3)</code>」というように指定していただいても構いません。</p>



<p class="wp-block-paragraph">以上のようにすることで、必要に応じて画像データを<code>bytearray</code>に変換して扱うことも可能です。</p>



<h2 class="wp-block-heading jinr-heading d--bold">まとめ</h2>



<p class="wp-block-paragraph">Pythonで<span class="marker"><strong>OpenCVを使って画像入出力する方法</strong></span>について解説しました。</p>



<p class="wp-block-paragraph">OpenCVでは、画像の入出力のための関数として、<code>imread</code>関数と<code>imwrite</code>関数を提供しています。これらの関数は様々なファイルフォーマット(BMP, PNG, JPEG, TIFF等)の画像をサポートしています。</p>



<p class="wp-block-paragraph">この記事では、OpenCVにおける画像表現の基本を最初に説明した後に、<code>imread</code>と<code>imwrite</code>の基本的な使い方を紹介しました。また、必要に応じてバイト列の<code>bytearray</code>に変換する方法についても説明しています。</p>



<p class="wp-block-paragraph">OpenCVは、非常に強力なコンピュータビジョンのライブラリで、画像の入出力は画像を扱うにあたっての基本となります。しっかりと使い方を理解していただきたいと思います。</p>


<section class="b--jinr-block b--jinr-blogcard d--blogcard-hover-up d--blogcard-style1 d--blogcard-mysite t--round "><div class="a--blogcard-label ef">あわせて読みたい</div><a class="o--blogcard-link t--round" href="https://tech.nkhn37.net/python-tech-summary-page/"><div class="c--blogcard-image"><img decoding="async" class="a--blogcard-img-src" width="128" height="72" src="https://tech.nkhn37.net/wp-content/uploads/2024/08/Python-Tech-Pythonプログラミングガイド_new1-640x360.jpg" alt="【Python Tech】プログラミングガイド" /></div><div class="a--blogcard-title d--bold">【Python Tech】プログラミングガイド</div></a></section>]]></content:encoded>
					
					<wfw:commentRss>https://tech.nkhn37.net/python-opencv-imread-imwrite/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Python】OpenCVのインストール方法（Windows）</title>
		<link>https://tech.nkhn37.net/python-opencv-install-windows/</link>
					<comments>https://tech.nkhn37.net/python-opencv-install-windows/#respond</comments>
		
		<dc:creator><![CDATA[naoki-hn]]></dc:creator>
		<pubDate>Wed, 10 Apr 2024 20:00:00 +0000</pubDate>
				<category><![CDATA[OpenCV]]></category>
		<category><![CDATA[cv2]]></category>
		<category><![CDATA[NumPy]]></category>
		<category><![CDATA[OpenNI 2]]></category>
		<category><![CDATA[SciPy]]></category>
		<guid isPermaLink="false">https://tech.nkhn37.net/?p=10709</guid>

					<description><![CDATA[PythonでコンピュータビジョンのライブラリであるOpenCVをインストールする方法を解説します。 PythonでOpenCVを利用する OpenCVとは OpenCV (Open Source Computer Vi [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Pythonでコンピュータビジョンのライブラリである<span class="marker"><strong>OpenCVをインストールする方法</strong></span>を解説します。</p>



<h2 class="wp-block-heading jinr-heading d--bold">PythonでOpenCVを利用する</h2>



<h3 class="wp-block-heading jinr-heading d--bold">OpenCVとは</h3>



<p class="wp-block-paragraph"><span class="marker"><strong>OpenCV</strong></span> (Open Source Computer Vision Library)は、オープンソースのコンピュータビジョン及び機械学習ライブラリで、Intelによって開発されました。公式サイトは<a href="https://opencv.org/" target="_blank" rel="noreferrer noopener">こちら</a>を参照してください。</p>



<p class="wp-block-paragraph">OpenCVは、C++で開発されており、Python、Java、Matlab等の言語に対するバインディングを提供しているため、多くのプログラミング言語で使用することができます。OSについても、Windows、Linux、Mac等の主要なOSをサポートしています。</p>



<p class="wp-block-paragraph">このライブラリでは、リアルタイム処理を意図しており、画像処理、ビデオキャプチャ、顔認識、物体検出、機械学習等の多岐にわたるタスクに対応しています。</p>



<p class="wp-block-paragraph">Pythonのバインディングのライブラリとしては、<span class="marker"><strong><code>cv2</code></strong></span>モジュールが提供されています。<code>cv2</code>の「2」はOpenCVのバージョンとは関係なく、記事執筆時点での最新はOpenCV4です。ドキュメントによっては、<code>cv</code>と誤って表記している場合があります。OpenCV4では<code>cv2</code>がモジュール名であることを覚えておいてください。</p>



<p class="wp-block-paragraph">この記事では、<span class="marker"><strong>OpenCVをPythonで使うためのインストール方法</strong></span>について紹介します。</p>



<h3 class="wp-block-heading jinr-heading d--bold">OpenCV環境のインストール方法</h3>



<h4 class="wp-block-heading jinr-heading d--bold">前提</h4>



<p class="wp-block-paragraph">Pythonの環境がインストールされているものとします。Pythonのインストール方法は「<a href="https://tech.nkhn37.net/python-install-windows/" target="_blank" rel="noreferrer noopener">Pythonのインストール方法（Windows）</a>」を参考にしてください。また、OpenCVは記事執筆時点で最新のOpenCV4を使用します。</p>



<h4 class="wp-block-heading jinr-heading d--bold">関連ライブラリ</h4>



<p class="wp-block-paragraph">以下のライブラリは、OpenCVを使用するにあたってインストールしておく必要があります。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>ライブラリ</th><th>概要</th></tr></thead><tbody><tr><td>NumPy</td><td>数値計算ライブラリでOpenCVをPythonで使用するにあたっての前提となります。</td></tr><tr><td>SciPy</td><td>Pythonの科学技術計算用ライブラリでNumPyに近いライブラリです。OpenCVの前提ではありませんが、OpenCVの画像を操作するのに役立ちます。</td></tr><tr><td>OpenNI 2</td><td>オプションの関連ライブラリです。AsusのXtion PROのような深度カメラ(センサ)を扱う機能を提供します。</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">この記事では、以下のようにNumPyとScipyをpipでインストールしておきます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">pip install numpy scipy</pre>



<h4 class="wp-block-heading jinr-heading d--bold">インストール方法 (pip package)</h4>



<p class="wp-block-paragraph">OpenCVでは、opencv_contribモジュールが用意されており、pipを使って以下のようにインストールができます。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">pip install opencv-contrib-python</pre>



<p class="wp-block-paragraph">上記を実行することで、OpenCVを使用する環境を用意することが可能です。基本的に、OpenCVを使用したい場合には、上記のインストールで十分かと思います。</p>



<section class="wp-block-jinr-blocks-iconbox b--jinr-block b--jinr-iconbox"><div class="d--simple-iconbox5 ">
			<i class="jif jin-ifont-v2speaker" aria-hidden="true"></i>
			<div class="a--jinr-iconbox">
<p class="wp-block-paragraph">インストールの際に以下のようにしてもインストールは可能です。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">pip install opencv-python</pre>



<p class="wp-block-paragraph">上記でも最低限の使用ができますが、使用する OpenCV の機能によっては、contrib パッケージが必要が場合があるため、フルパッケージでインストールする場合には「contrib」をつけてください。</p>
</div>
		</div></section>



<h3 class="wp-block-heading jinr-heading d--bold">動作確認</h3>



<p class="wp-block-paragraph">OpenCVがインストールできていることを確認するには、簡単なサンプルスクリプトを実行してみることです。いくつかのサンプルコードがOpenCVのソースコードのアーカイブに存在しています。</p>



<p class="wp-block-paragraph">OpenCVの<a href="https://opencv.org/releases/" target="_blank" rel="noreferrer noopener">リリースページ</a>で最新アーカイブのSourceの部分をクリックして、ソースコードをダウンロードしてください。ZIPファイルがダウンロードできます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" width="754" height="374" src="https://tech.nkhn37.net/wp-content/uploads/2024/04/image-2.png" alt="OpenCV 4" class="wp-image-10713" style="width:700px;height:auto" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/04/image-2.png 754w, https://tech.nkhn37.net/wp-content/uploads/2024/04/image-2-300x149.png 300w" sizes="(max-width: 754px) 100vw, 754px" /><figcaption class="wp-element-caption"><a href="https://opencv.org/releases/" target="_blank" rel="noreferrer noopener">リリースページ</a>より引用　<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">※画面レイアウトは変わっている可能性があります</mark></figcaption></figure>
</div>


<p class="wp-block-paragraph">解凍したフォルダ配下にsamples\pythonというフォルダがありますが、ここにPython用のサンプルスクリプトがあります。</p>



<p class="wp-block-paragraph">例えば、サンプルスクリプトのhist.pyを実行してみましょう。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">python hist.py</pre>



<p class="wp-block-paragraph">上記を実行すると、画像処理でよく見るレナの画像が表示されます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="514" height="544" src="https://tech.nkhn37.net/wp-content/uploads/2024/04/image-3.jpg" alt="OpenCVサンプルスクリプト hist.py" class="wp-image-10714" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/04/image-3.jpg 514w, https://tech.nkhn37.net/wp-content/uploads/2024/04/image-3-283x300.jpg 283w" sizes="(max-width: 514px) 100vw, 514px" /></figure>
</div>


<p class="wp-block-paragraph">また、以下のようにKeymapの表示がされ、ヒストグラムを表示する際に使用できるキーが分かります。</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">usage : python hist.py &lt;image_file>
 Histogram plotting 

    Keymap :

    a - show histogram for color image in curve mode 

    b - show histogram in bin mode 

    c - show equalized histogram (always in bin mode) 

    d - show histogram for gray image in curve mode 

    e - show histogram for a normalized image in curve mode 

    Esc - exit </pre>



<p class="wp-block-paragraph">具体的にキーボードで「a」等を押すとカラー画像のヒストグラムが表示されます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="820" height="584" src="https://tech.nkhn37.net/wp-content/uploads/2024/04/image-8.jpg" alt="OpenCV サンプル" class="wp-image-10720" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/04/image-8.jpg 820w, https://tech.nkhn37.net/wp-content/uploads/2024/04/image-8-300x214.jpg 300w, https://tech.nkhn37.net/wp-content/uploads/2024/04/image-8-768x547.jpg 768w" sizes="(max-width: 820px) 100vw, 820px" /></figure>
</div>


<p class="wp-block-paragraph">また、「b」を押すとグレースケールでの画像とヒストグラムが表示されます。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="816" height="573" src="https://tech.nkhn37.net/wp-content/uploads/2024/04/image-8-1.jpg" alt="OpenCV サンプル" class="wp-image-10721" srcset="https://tech.nkhn37.net/wp-content/uploads/2024/04/image-8-1.jpg 816w, https://tech.nkhn37.net/wp-content/uploads/2024/04/image-8-1-300x211.jpg 300w, https://tech.nkhn37.net/wp-content/uploads/2024/04/image-8-1-768x539.jpg 768w" sizes="(max-width: 816px) 100vw, 816px" /></figure>
</div>


<p class="wp-block-paragraph">上記のようにサンプルスクリプトが動作すれば、OpenCVを使用できる環境ができたことになります。</p>



<h2 class="wp-block-heading jinr-heading d--bold">まとめ</h2>



<p class="wp-block-paragraph">Pythonでコンピュータビジョンのライブラリである<span class="marker"><strong>OpenCVをインストールする方法</strong></span>を解説しました。</p>



<p class="wp-block-paragraph">OpenCVは、オープンソースのコンピュータビジョン及び機械学習ライブラリで、Pythonバインディングとして<code>cv2</code>モジュールが提供されています。</p>



<p class="wp-block-paragraph">この記事では、OpenCVをインストールしてサンプルスクリプトを実行する方法を紹介しました。OpenCVがインストールできれば、様々なOpenCVの機能をPythonから試すことができます。</p>



<p class="wp-block-paragraph">OpenCVは、コンピュータビジョンでは非常に有名なライブラリですので、ぜひインストールして色々と使ってみてもらえたらと思います。</p>


<section class="b--jinr-block b--jinr-blogcard d--blogcard-hover-up d--blogcard-style1 d--blogcard-mysite t--round "><div class="a--blogcard-label ef">あわせて読みたい</div><a class="o--blogcard-link t--round" href="https://tech.nkhn37.net/python-tech-summary-page/"><div class="c--blogcard-image"><img decoding="async" class="a--blogcard-img-src" width="128" height="72" src="https://tech.nkhn37.net/wp-content/uploads/2024/08/Python-Tech-Pythonプログラミングガイド_new1-640x360.jpg" alt="【Python Tech】プログラミングガイド" /></div><div class="a--blogcard-title d--bold">【Python Tech】プログラミングガイド</div></a></section>]]></content:encoded>
					
					<wfw:commentRss>https://tech.nkhn37.net/python-opencv-install-windows/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Disk: Enhanced  を使用したページ キャッシュ

Served from: tech.nkhn37.net @ 2026-11-04 07:48:12 by W3 Total Cache
-->