私は画像から輪郭を取り出し、輪郭内の画素を特に操作したいと思っています。輪郭内のピクセル値の合計(領域ではない)を見つける必要があります。 OpenCVは四角形のROIだけをサポートしているので、どうやってこれを行うのか分かりません。また、cvSumは完全な画像のみを受け取り、マスクオプションを持たないので、処理方法が少し失われています。特定の輪郭内の画素の値の合計を見つける方法については、誰にも提案はありますか?輪郭(OpenCV)のピクセルを扱う?
答えて
最初にすべての輪郭線を取得します。この情報を使用して、白い部分が輪郭の輪郭および領域であるバイナリイメージを作成します。 2つのイメージに対してAND演算を実行します。結果は、黒い背景上の等高線と領域になります。次に、この画像内のすべてのピクセルを合計します。
まず、あなたが示唆していることは、すべての輪郭の合計を私に与えるでしょう。私はそれぞれの金額を別々にしたいと思っています。第二に、私は私の質問で言ったように、私は輪郭の面積を計算するのではなく、輪郭の中で既に黒ではないピクセルの値を計算したい。あなたのメソッドは、輪郭内のすべてのピクセルを白くして、アプリケーションのポイントを完全に無視します。 – fdh
バイナリイメージと元のイメージをANDで結ぶと、孤立したイメージが得られます。すべての白いイメージを取得しません。一度に1つずつ必要な場合は、バイナリマスクを作成し、2つの画像と1つずつANDを作成することができます。 – scord
私は自分自身をよく説明していない場合は申し訳ありません。しかし、私は成功して自分自身で似たようなことをしました。 – scord
私が正しく理解していれば、輪郭の内側にある灰色の画像からすべてのピクセル強度を合計したいと思います。もしそうなら、私が考えている方法は、空白のイメージにその輪郭を描き、それを埋めることで、自分自身をマスクにすることです。あなたは中間画像にすることができ、この後
CvRect cvBoundingRect(CvArr* points, int update=0);
:それはプロセスを最適化するために、後にまた有する輪郭の境界矩形を計算することができる値0を使用して
void cvAddS(const CvArr* src, CvScalar value, CvArr* dst, const CvArr* mask=NULL);
を、マスクが得られ輪郭から、ROIとして前に境界矩形を設定します。
この後、結果の画像の合計は少し速くなります。
輪郭のポイントにアクセスするには、個別のコードに従ってください
vector<vector<Point> > contours;
...
printf("\n Contours pixels \n");
for(int a=0; a< contours.size(); a++)
{
printf("\nThe contour NO = %d size = %d \n",a, contours[a].size());
for(int b = 0; b < contours[a].size(); b++)
{
printf(" [%d, %d] ",contours[a][b].x, contours[a][b].y);
}
}
これは、輪郭の端に沿った点のみになります。内部のピクセルではありません。 – David
- 1. OpenCV輪郭モーメント?
- 2. 注文OpenCVの輪郭
- 3. Cannyの輪郭を輪郭に変換するOpenCV
- 4. OpenCV ||輪郭類似度
- 5. cのopencvの輪郭/オブジェクトの重心?
- 6. のJava - OpenCVのは、余分な輪郭
- 7. Go/OpenCV:輪郭をフィルタする
- 8. OpenCV - 輪郭を閉じる(Java)
- 9. OpenCV C++:contourAreaで輪郭をソート
- 10. Android OpenCV輪郭を見つける
- 11. Java OpenCV輪郭のスキュー調整
- 12. JAVA(Android)のOpenCV描画輪郭
- 13. OpenCV:輪郭検出Android contourldxの問題
- 14. Opencv Python 2.7の輪郭検出
- 15. Opencv:輪郭検出、拡張、質量スケッチ
- 16. 内部輪郭抽出(HOLES)OpenCV
- 17. OpenCVの:無視テキストのような輪郭
- 18. Matplotlibの輪郭
- 19. CV2輪郭内のピクセル値を取得する
- 20. 輪郭内のピクセルを効率的にカウントする方法
- 21. R - 輪郭マップ
- 22. 輪郭抽出
- 23. OpenCVでジグソーパズルの1ピクセルラインの輪郭を取得する
- 24. opencvの輪郭/オブジェクト間の距離を見つける
- 25. 輪郭の一致 - 輪郭の変位の検出
- 26. 輪郭の歪み
- 27. Matlab/Octaveの輪郭
- 28. openCVは輪郭内の形状を検出します
- 29. opencvで輪郭の長さを見つける
- 30. 画像の輪郭を見つけるPython OpenCV
輪郭表現とは何ですか?ピクセル座標?画像/マスク?なぜピクセルをループすることはできませんか? –
申し訳ありませんが、私は本当にその質問を理解していません。輪郭は、特定の領域を囲む一連の点で構成されています。どのようにピクセルをループすることができないのか分かりません。輪郭はどのような形状でもかまいません - 人体の輪郭から犬の輪郭まで - 固定された形状の欠如私は本当に "ループ"できません – fdh
輪郭のピクセルがある配列の座標として与えられると、配列をループし、そこから座標を取り出し、それらの座標を持つ画像ピクセルを見ます。輪郭がイメージ内にあり、そのピクセルが他のものと区別できる特定の色(または範囲)を持っている場合は、イメージピクセルをループし、その色を見て、それらが輪郭ピクセルであるかどうかを確認します。座標がなく、輪郭ピクセルに特定の色範囲がない場合は、別の種類の問題です。難しくなります。あなたはその表現を指定しなかった。だからこそ私はそれについて尋ねた –