これは、OpenCV C++ に重点を置いているこの質問に基づいているため、この質問を作成することにしました。これは私のプログラムの一部です:
vector<vector<Point> > contours;
vector<vector<Point> > largest_contours;
double largest_area = 0;
for(int i= 0; i < contours.size(); i++){
double area = contourArea(contours[i]);
if(area >= largest_area){
largest_area = area;
largest_contours = contours[i]; <---THIS is the problem
}
}
基本的に、プログラムは次のことを行います。
- 画像シーケンス/ビデオで検出されたすべての輪郭をスキャンします
- 等高線に次のようにラベルを付けます
contours[i]
- すべての等高線の面積を計算します
contours[i]
面積に基づいて比較します。面積が大きくなりlargest_area
、輪郭が大きくなりますlargest_contours
- 最後に、
DrawContours
そしてimshow
問題のある行には、マウスの上に次のメッセージが表示されます。
Error: No operator "=" matches these operands
問題は、同じクラス ( ) を持ち、一度に各等高線に値が 1 つしかないにもかかわらず、 が等しくないのはなぜですか? 誰でも理由と解決方法を説明できますか?contours[i]
largest_contours
vector<vector<Point> >
前もって感謝します。
EDIT(1):contourArea(contours)
に変更contourArea(contours[i])
。largest_contours
との宣言を追加しましcontours
た。