python-opencv 第5回:rectangle関数の詳細解説

概要:誰もが知っているように、コンピューター ビジョン (コンピューター バージョン の略称 CV) は、人工知能とロボット工学の開発における主要な研究方向であり、opencvはコンピューター ビジョン プログラミングの技術的および機能的サポートを提供するサードパーティです。当然勉強が必要な内容です。

            今回紹介する関数は、opencv ライブラリの関数-rectangleです。

            長方形関数の主な機能は、指定された領域に長方形の境界線を追加して、画像内で処理されるターゲット領域を視覚化することです。これにより、処理中にターゲット領域を同期的に理解できるようになり、便利になります。同時にデバッグし、問題を見つけます。(二重のパスワード、二重のスペース、仕事と生活のための別々のストレージ。相互に干渉することはありません。覚えておいてください: 速く走ることが必ずしも勝利を意味するわけではなく、落ちないことが成功です。8*** チタン製の長方形)これは、これから処理しようとしている部分、またはすでに処理済みの部分をより適切に識別するのに役立ち、画像認識と補正を実行するときに高度なまたは同期的な判断を行うことができ、より実用的なツールです。

            今回は、レクタングル関数のターゲットフレーム選択の有効性と目を引くことを実証するために、「飢餓オンライン」のすべてのプレイアブルキャラクターを招待します(ユウメイとおばあちゃんはまだ購入していませんね、V I 30 今回はテスト素材のゲストとして、ドラゴンフライと戦うためにあなたを連れて行きます。集合写真で四角形がどのように選択されているかを見て、四角形機能の使い方をさらに学習していきます。早速ですが、私は仮面ブラックさんです、早速今日の勉強を始めさせていただきます

a3e3a2be0efe42d5a38d5bce4e476910.png

 体の部分:

060e21a52c4946cd98deb5c91b498842.jpeg

print("祝大家每天快乐,love and peace!")

① 使用前の準備:

前回と同様、rectangle を使用するための大前提として、ツールマンの古いパートナーである opencv を引き続き呼び出します。

import cv2

②該当する状況:

ターゲット領域の位置に疑問がある場合、または処理された切り抜き領域を区別する必要がある場合、長方形機能を使用して画像内の特定の領域をマークし、枠で囲まれた領域が目的の領域であるかどうかを判断できます。 。

前者(疑問あり)は、ユーザーが選択した領域を事前に検証するものであり、ユーザーの自己識別テストに属し、四角形関数は範囲選択のパラメータがユーザーによって与えられることを示します。

後者(切り出し判定)は、テストプログラムの実行結果に属するプログラム処理後の切り出し結果を判定するものであり、範囲選択のパラメータがプログラムによる画像処理の結果であることを矩形関数が示している。

どちらの状況も、レクタングル機能を使用してユーザーの目の前に直感的かつ明確に表示できるため、その後のデバッグプロセスで同じ問題が発生することを回避できます。

(Very GoodとExcellentの間にはわずかな距離がある。この距離をセーフティという。誤表示は注意を喚起し、誤認は警察を呼び、目標を忘れず、間違いを漏らさない。) 8***チタン矩形)

③文法説明:

使用する構文: cv2.rectangle (img、pt1、pt2、色、太さ、lineType、shift)

パラメータの説明: img: ターゲットをフレーム化するソース画像。3 チャネルまたは単一チャネルの画像が受け入れられます (おそらく)。

                  pt1、pt2: バイナリ タプル (x、y) を使用した、画像上で選択した長方形の対角線の 2 つの端点の座標 (つまり、同じ対角線上にある長方形の 2 つの頂点の座標)表現形式(xは列座標を表し、左から右に徐々に増加します。yは行座標を表し、上から下に徐々に増加します)(ここでは私の別の記事「Pythonでのパラメータと画像の対応付け」を紹介するフローを紹介します)高さと幅」。これは、Python のさまざまな状況下でのパラメーターと画像の高さと幅の対応関係を紹介します。興味がある、または関連するニーズがある友人は参照してください)。

                  color: フレーム選択四角形として使用するために選択した境界線の色。通常は 3 つの値のタプルで、色の RGB 3 チャネルの値を示します (注: タプル内の 3 つの値は B チャネルに対応します) 、G チャネル、R チャネル、RGB テーブルでクエリされた色は、本来必要な色を取得するには反転する必要があります); グレースケール画像の場合は、境界線の色を表す明るさを選択することもできます。

                  太さ: 選択したフレーム選択長方形の太さ。デフォルトは 1 ピクセル値です。通常は、表す特定の整数を選択できます (正の数値は対応するピクセル値の線幅を示し、負の数値は cv2 などを示します)。 FILLED は、長方形が枠を囲むことを意味します。選択した領域が完全に塗りつぶされます (黒く塗りつぶされたブシ)。ターゲット領域からノイズを除去するために使用できます。

                  lineType: 選択した長方形の境界線の種類。CV2.LINE_8 (デフォルト) (8 接続)、CV2.LINE_4 (4 接続)、CV2.LINE_AA を選択できます。CV2.LINE_AA として指定した場合は、ガウスフィルター アンチエイリアスラインはラインの滑らかさを高める効果があります(黄金比立体裁断、オランダ直輸入カーフスキン、極めて滑らかな網膜、8***チタンレクタングル)。一般に、または特別な要件がない場合、このパラメータは実際には必要ありません。lineType については、次のようなテキストの説明もあります。

関数線は、イメージ内の pt1 点と pt2 点の間に線分を描画します。線は画像の境界によって切り取られます。整数座標を持つアンチエイリアス処理されていないラインの場合、8 接続または 4 接続の Bresenham アルゴリズムが使用されます。太い線が描かれ、端が丸くなります。アンチエイリアス処理された線は、ガウス フィルタリングを使用して描画されます。線の色を指定するには、マクロ CV_RGB(r, g, b) を使用できます。

                  シフト: 長方形を移動するために選択する度数。デフォルトは 0 (つまり、操作なし)、整数 n を選択できます。操作により、pt1 と pt2 の座標値が 2^n で除算されます。 。1 を選択した場合は pt1 と pt2 の座標値を 2 で割ることに相当し、2 を選択した場合は 4 で割った、つまり 2^2 になります。この操作により、ユーザーは 1 組の固定座標値のみを使用して異なる領域をフレーム選択できるようになり、戦略を立てるかのようにそれらを相互に比較したり、焦点を変更したりすることができます。

(成功とは、先見の明があることではなく、高台に立って、戦略を立て、未来をコントロールすることです。これが 8*** であり、これが世界の精神です。頂点の目標、精神です。チタンの想い、革の想い、成功した人生に敬意を表しましょう、8***長方形)

参照用に、rectangle 関数に関連するネイティブ ドキュメントを以下に添付します。

def rectangle(img: Mat, pt1, pt2, color, thickness=..., lineType=..., shift=...)
from __doc__
    """
    'rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) -> img  
    .  @brief Draws a simple, thick, or filled up-right rectangle.

    .  The function cv::rectangle draws a rectangle outline or a filled rectangle whose two opposite corners  
    .  are pt1 and pt2. 

 
    .  @param img Image.  
    .  @param pt1 Vertex of the rectangle. 
    .  @param pt2 Vertex of the rectangle opposite to pt1.  
    .  @param color Rectangle color or brightness (grayscale image). 
    .  @param thickness Thickness of lines that make up the rectangle. Negative values, like #FILLED,   
    .  mean that the function has to draw a filled rectangle.  
    .  @param lineType Type of the line. See #LineTypes  
    .  @param shift Number of fractional bits in the point coordinates.



    .  rectangle(img, rec, color[, thickness[, lineType[, shift]]]) -> img  
@overload 

    .  use `rec` parameter as alternative specification of the drawn rectangle: `r.tl() and r.br()-Point(1,1)` are opposite corners'
    """
    pass

④インスタンスの操作:

ここでは、さまざまなパラメータ (飢餓のキャラクター会議 (武士) )の下で画像のフレーム選択のさまざまな結果を示すためのいくつかの簡単な操作を示します

1.黄色の髪のウェンディ:

import cv2

img=cv2.imread("src.png")
cv2.rectangle(img,(65,48),(236,240),(170,234,242),5,lineType=cv2.LINE_AA)
cv2.imshow("result",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

1154ffe963de4bb182fa91867a5caa00.png

2.短気なヤナギ(物理学) (なぜ火の女の子が服を着替えなかったのかは聞かないでください。私に言わせれば、彼女はただの怠け者です):

import cv2

img=cv2.imread("src.png")
cv2.rectangle(img,(835,32),(1044,245),(60,65,170),5,lineType=cv2.LINE_AA)
cv2.imshow("result",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

a1727e5e9567436291875f2b6044ed36.png

3.神経質な知識豊富な図書館員:

import cv2

img=cv2.imread("src.png")
cv2.rectangle(img,(400,14),(528,240),(117,172,124),5,lineType=cv2.LINE_AA)
cv2.imshow("result",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

4eff20fae59f43d6bb5a9270ab85300e.png

4.ヴォルフガング、ネズミのように臆病だが牛のように力強い:

import cv2

img=cv2.imread("src.png")
cv2.rectangle(img,(243,447),(380,657),(65,129,190),5,lineType=cv2.LINE_AA)
cv2.imshow("result",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

0447a7b621a64519964dc255224bebd7.png

5.ラオイン B、偉大な魔術師 - マクスウェル:

import cv2

img=cv2.imread("src.png")
cv2.rectangle(img,(792,251),(920,451),(236,232,231),-1,lineType=cv2.LINE_AA)
cv2.imshow("result",img)
cv2.waitKey(0)
cv2.destroyAllWindows()

ca9026f69070448388e22fb98984ca8f.png

 (ああ、彼はどこへ行った? ああ、偉大な魔術師は、自分自身さえも生きている人間に変身することが判明しました。何も知らない場合は、前の写真を見てください。実際、それは主に私はこの古い陰Bが嫌いです、この古い陰Bがなかったら誰が飢餓大陸のような場所に来るでしょう(私は武士を知っています

結論: この問題では、opencv で四角形関数を学習し、四角形を使用して画像にマークを付ける方法を学びました。これにより、フレームで選択された領域が必要な領域であるかどうかを判断し、対応する自己検証を実行したり、プログラム結果の判定。実は、opencv には他にも line 関数 (line)、circle 関数 (circle)、ellipse 関数 (ellipse)、polylines 関数 (polygon)、putText 関数 (text) などの描画関数があります。実装は実際には四角形に似ています。

以上が内容ですので、ぜひ注目いいねブックマークしていただければ大変助かります。皆さん、ありがとうございました!

e63444f11e4844da927650cfd1d40197.gif

はい、仮面ブラックさんですこの国に家族が健康であることを祈ります。また次回お会いしましょう! ヨーヨー〜〜

94e1f65dcf3b4af2a6640fc4b8013c96.jpeg  

最後に、あなたに一言伝えたいと思います。あなたは人とは違う、それを超えたいと思っています。あなたには夢があり、力があり、達成したことを決して終わりとは考えません、覚えておいてください、あなたの名前は「成功」です。8***チタンゴールド**

おすすめ

転載: blog.csdn.net/m0_55320151/article/details/127465991