質問: いつもお世話になっています。 ### 前提・実現したいこと 以下の画像の平行、もとい隣り合っている (↑接していないので正しい表現ではない) 部分(この画像でいう所の真ん中)を抽出したいです。 互いに“近しい”ところを検出し、(“近しい”に対して閾値を設ける必要あり?) その中で、同じ方向である領域の最大の領域(主方向成分というやつ?) を検出すればいいのだろうと思うのですが、 下図のように2色の間に別の色が存在するため、解決に苦戦しています。 それぞれの色についてのマスクイメージは cv2.inRange()とcv2.addWeighted()で出来ているのですが、 どのようにすればよろしいでしょうか。 ![元画像](https://teratail.storage.googleapis.com/uploads/contributed_images/9f41c8b7f5d060aeeec45a0041d1476e.jpeg) ↑このような画像を与えられたら ↓このように赤色で平行線部分を抽出したい ![目標](https://teratail.storage.googleapis.com/uploads/contributed_images/75732fc0fbdcbf7942cb3002180ac0f2.jpeg)
回答: 黄色領域と緑色領域に関する > > マスクイメージ > > > がある,ということならば, 白い領域群 = (画像全体 - (黄領域 + 緑領域) ) として得られます. あとはこれらすべてを含む矩形でも求めてやればよいのでは. (含めちゃいけない白領域も存在するなら適当に判定する必要はあるでしょうが)