2. Opencv-Python画像処理の基礎(2)

目次

序文

1. 画像の読み込み、表示、保存

章の紹介:

1. 画像を読み取る

2. 表示画像

3. 画像の保存 

2. 画像の描画

章の紹介:

1. 直線を引く

2. 円を描く

 3. 長方形を描く

4. 画像にテキストを追加する

要約する





序文

次に、画像処理の興味深い基礎に入りますが、これには多くの内容が含まれています。辛抱強くこの章のより重要な内容を学習し終えていただければ幸いです。





1. 画像の読み込み、表示、保存

1. 画像を読み取る

(1) 使用する機能

cv2.imread()

関数パラメータ:

  1. 読み込む画像パス
  2. 読み取りモードフラグ
  • cv.IMREAD*COLOR: 画像をカラー モードでロードします。画像の透明度は無視されます。これはデフォルトのパラメータです。

  • cv.IMREAD*GRAYSCALE: グレースケール モードで画像をロードします

  • cv.IMREAD_UNCHANGED: アルファ チャネルを含む画像モードを読み込みます。

     1/0 または -1 を使用して、上記の 3 つの記号を置き換えることができます

(2) 参考コード

import cv2
import matplotlib.pyplot as plt
img = cv2.imread('123.png', 0)

関数分析: 最初の 2 行はインポートされた関数の使用パッケージです。cv2 はダウンロードした opencv-python です。matplotlib 関数も可視化関数です。具体的なダウンロード方法は詳しく説明しません。後で使用します。 

コードの 3 行目は、パス内のイメージを読み取り、それをグレースケール イメージの形式で関数に読み込むことを意味します (0 は、グレースケール イメージの形式で読み取ることを意味します)。

注: 上記のコードのパスが間違っている場合、エラーは報告されず、None 値が返されます。

2. 表示画像

(1) 機能を利用する

        cv2.imshow()

パラメータ:

  • 画像を表示するウィンドウの名前。文字列型で表現されます。
  • ロードする画像

注:画像を表示するための API を呼び出した後、画像描画のための時間を確保するために cv.waitKey() を呼び出す必要があります。そうしないと、ウィンドウが応答しなくなり、画像を表示できなくなります

(2) 参照コード:

import cv2
import matplotlib.pyplot as plt
img = cv2.imread('123.png', 0)
cv2.imshow('img',img)
cv2.waitKey(0)
# matplotlib中展示
plt.imshow(img)
plt.show()

コード分​​析: cv2.imshow('img', img) の最初のパラメーターは表示されるイメージの名前で、2 番目のパラメーターはイメージのオントロジーです。

cv2.waitKey() 関数では、パラメーターが 0 の場合、画像が選択されているときにキーボードのいずれかのキーが押された場合にのみ関数が停止します。パラメーターが 0 より大きい数値の場合、それは遅延関数と同等であり、遅延単位はミリ秒です。

(3) 機能実行効果

3. 画像の保存 

(1) 使用する機能

cv2.imwrite()

パラメータ:

  • ファイル名、保存場所
  • 保存する画像

(2) 参照コード:

cv.imwrite('messigray.png',img)

コード解析:入力パスを開き、画像に問題がなければ正常に保存されています。

2. 画像の描画
1. 直線を描画する

(1) 使用する機能

cv2.line(img, start, end, color, thickness)

パラメータ:

  • img: 直線を引く画像
  • Start,end: 直線の始点と終点
  • color: 線の色
  • 太さ:線幅

(2) 参考コード

import cv2
import matplotlib.pyplot as plt
img = cv2.imread('123.png')
cv2.line(img, (0,0), (900, 900), (0, 255, 0), 3)
cv2.imshow('img',img)
cv2.waitKey(0)

 コード分​​析: 座標系の中心は左上隅にあり、右下隅の座標は (900, 900) [表示寸法を超えています] カラー テーブルはオンラインで見つけることができ、3 は表します線の幅。

 (3) 実行効果




2. 円を描く

(1) 使用機能:

cv2.circle(img, centerpoint, r, color, thickness)

パラメータ:

  • img: 円を描く画像
  • 中心点、r: 中心点と円の半径
  • color: 線の色
  • 太さ:線幅、-1の場合、閉じたパターンを生成し色で塗りつぶします。

(2) コード例:

import cv2
import matplotlib.pyplot as plt
img = cv2.imread('123.png')
cv2.circle(img, (100, 100), 90, (0, 0, 255), 3)
cv2.imshow('img',img)
cv2.waitKey(0)

コード分​​析: (100, 100) は上から下までの座標を表し、90 は半径を表し、(0, 0, 255) は色を表し、3 は線の幅を表します。

(3) 実行効果

 3. 長方形を描く

(1) 使用機能:

cv.rectangle(img,左上,右下,色,厚さ)

パラメータ:

  • img: 長方形を描く画像
  • Leftupper、rightdown: 長方形の左上隅と右下隅の座標
  • color: 線の色
  • 太さ:線幅

(2) コード例:

import cv2
import matplotlib.pyplot as plt
img = cv2.imread('123.png')
cv2.rectangle(img, (100, 100), (300, 300), (0, 0, 255) ,3)
cv2.imshow('img',img)
cv2.waitKey(0)

(3) 実行効果

4. 画像にテキストを追加する

 (1) 使用機能:

cv.putText(画像,テキスト,ステーション,フォント,フォントサイズ,色,太さ,cv.LINE_AA)

パラメータ:

  • 画像: 画像
  • text: 書き込むテキストデータ
  • station: テキストの配置位置
  • フォント:文字【cv2.FONT_HERSHEY_SIMPLEX】【cv2.FONT_HERSHEY_PLAIN】
  • 【cv2.FONT_HERSHEY_DUPLEX】【FONT_HERSHEY_COMPLEX】
  • 【cv2.FONT_HERSHEY_TRIPLEX】【cv2.FONT_HERSHEY_COMPLEX_SMALL】
  • [フォントの数が多すぎるので、1 つずつ例を示しません^_^]
  • フォントサイズ: フォントサイズ

(2) サンプルコード:

import cv2
import matplotlib.pyplot as plt
img = cv2.imread('123.png')
cv2.putText(img, "I am a pig", (100, 100), cv2.FONT_HERSHEY_SIMPLEX, 2,  (0, 0, 255) ,3, cv2.LINE_AA)
cv2.imshow('img',img)
cv2.waitKey(0)

コード解析:省略(^_^)

(3) 実行効果:





要約する

この記事では、画像の読み取りと描画の詳細な説明とコード分析を説明しますが、次に、画像に対して幾何学的変換とモルフォロジーの方向に一連の操作を実行しますので、ご期待ください。(主に書きすぎて読むのに影響するため)

おすすめ

転載: blog.csdn.net/weixin_44463519/article/details/121165412