畫矩形操作
Point center = Point((left.center.x + right.center.x) / 2, (left.center.y + right.center.y) / 2);
?? ??? ??? ??? ??? ??? ?RotatedRect rect = RotatedRect(center, Size(dis, meanheight), (left.angle +? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? right.angle) / 2);//計(jì)算裝甲板的四個角點(diǎn)
?? ??? ??? ??? ??? ??? ?Point2f vertices[4];
?? ??? ??? ??? ??? ??? ?rect.points(vertices);//從RotatedRect類中提取出角點(diǎn)
?? ??? ??? ??? ??? ??? ?for (int i = 0; i < 4; i++) {
?? ??? ??? ??? ??? ??? ??? ?line(frame, vertices[i], vertices[(i + 1) % 4], Scalar(0, 0, 255), 2);
?? ??? ??? ??? ??? ??? ??? ?cout << vertices[i] << endl;
?? ??? ??? ??? ??? ??? ?}
效果圖:
:
點(diǎn)坐標(biāo)
[440.799, 205.927]
[444.401, 176.144]
[609.201, 196.073]
[605.599, 225.856]
可以看到系統(tǒng)自動把vertices[0]定在了左下角,可是vertices[0]點(diǎn)的Y坐標(biāo)不是最大的,似乎于x軸坐標(biāo)有關(guān)。
但我參考了其他文章,似乎不同的版本起始點(diǎn)定的位置也不一樣,不要想當(dāng)然的認(rèn)為點(diǎn)就是在y坐標(biāo)最大的為起始坐標(biāo)了。我opencv的版本是4.1.0.文章來源:http://www.zghlxwxcb.cn/news/detail-641491.html
所以想要使用角點(diǎn)進(jìn)行仿射變化,建議先輸出一次找點(diǎn)的方位,或者將點(diǎn)排序。文章來源地址http://www.zghlxwxcb.cn/news/detail-641491.html
到了這里,關(guān)于opencv關(guān)于使用cvRotatedRect函數(shù)計(jì)算并畫出矩形四個點(diǎn)的返回位置的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!