ROIを抽出する方法でOpenCVの不規則性

、ROIは関心の省略形の英語リージョンコードの最初の3つの文字で、何回も画像の我々の分析は、医用画像のための細胞の特定のROI分析と理解の画像で、ROIは正しく、その後の分析を抽出することができ、測定密度を計算し、ROIおよびこれらの領域は、多くの場合、矩形領域、通常は不規則な多角形の面積ではなく、多くのOpenCVの初心者は、これらの不規則なROIの領域を抽出する方法がわかりません。実際には、非常に便利なOpenCVのAPI関数はすぐに様々な異常なROIの領域を抽出することができますがあります。
これを行う前に、第一のルックマスク(マスク)、OpenCVのがそのようにマスク定義されているものを画像処理:マット8つのシングルチャネル・オブジェクトを、各画素値がゼロまたは非ゼロの領域です。オブジェクトがマスク画像領域に追加されたときに、目に見える唯一の非ゼロ領域が重なり、と言うことであり、その形状や大きさは、あなたが見るマスク領域を決定しないであろう、ゼロの画素値がすべての可視像をマスクであります画像の最終的なサイズおよび形状
見ることができる、マスク効果は、様々な不規則な領域を抽出するために、私たちを助けることができます。単にbitwise_andにAPI関数を呼び出すことによって、上記の手順をOpenCVので。
方法1:手動選択、および以下を達成するために、多角形の塗りつぶしコードでこれを行うことができます:
インポートCV2 AS CV
インポートnumpyのAS NP

SRC = cv.imread(「D:/images/gc_test.png」)
cv.imshow(「入力」、SRC)
H、W、C = src.shape

手描きのROI領域

マスク= np.zeros((H、W)、DTYPE = np.uint8)
x_data = np.array([124、169、208、285、307、260、175])
y_data = np.array([205、124 、135、173、216、311、309])
PTS = np.vstack((x_data、y_data))。astype(np.int32).T
cv.fillPoly(マスク、[PTS]、(255)、8,0 )
cv.imshow(「マスク」、マスク)

マスク、ROI抽出

=検索結果をcv.bitwise_and(SRC、SRCは、=はマスクマスク)
cv.imshow(「結果」、結果)
cv.waitKey(0)
方法2:これは本当の、実際には、プログラムを介してマスクを生成する方法を、OpenCVのは、場所を混同最も初心者ですそれは非常に簡単です。コードを見て、それを証明します!

SRC = cv.imread(「D:/images/gc_test.png」)
cv.imshow(「入力」、SRC)

マスク領域を生成します

HSV = cv.cvtColor(SRC、cv.COLOR_BGR2HSV)
マスク= cv.inRange(HSV、(156、43、46)、(180、255、255))
cv.imshow(「マスク」、マスク)

マスクによれば、ROIを抽出します

結果= cv.bitwise_and(SRC、SRC、マスク=マスク)
cv.imshow(「結果」結果)
cv.waitKey(0)

主に3つのステップに分割され
た輪郭ROI抽出するために
生成されたマスク領域
指定輪郭抽出
によるマスク値化を生成したプロファイルは成分分析を接続し、他の処理方法INRANGEを得る、請求> -ことに注意することが重要です。ここでINRANGE途中に基づいてマスク領域を取得し、その後、抽出されました。

公開された41元の記事 ウォン称賛7 ビュー3678

おすすめ

転載: blog.csdn.net/weixin_43091087/article/details/103573358