0
我正在處理android中的圖像處理項目。目前我的任務是提取對象並將其轉換爲圖像的中心,以便我可以輕鬆地從中提取特徵。 我已經提取了對象,現在我想將它翻譯爲圖像的中心並旋轉它,以在圖像上水平對齊它。如何將輪廓轉換爲openCV中圖像的中心?
我在Android中使用OpenCV進行圖像處理。 任何幫助是高度讚賞。由於
我正在處理android中的圖像處理項目。目前我的任務是提取對象並將其轉換爲圖像的中心,以便我可以輕鬆地從中提取特徵。 我已經提取了對象,現在我想將它翻譯爲圖像的中心並旋轉它,以在圖像上水平對齊它。如何將輪廓轉換爲openCV中圖像的中心?
我在Android中使用OpenCV進行圖像處理。 任何幫助是高度讚賞。由於
我建議以下技術..
vector<point>contour
- OpenCV的輪廓點的矢量。所以你可以通過你想要的距離來翻譯它們。因此,在C++中我會做如下翻譯的輪廓
void shifcontour(vector<Point>& contour, int x, int y)
{
for (size_t i=0; i<contour.size(); i++)
{
contour[i].x += x;
contour[i].y += y;
}
}
找到x和y,則可以使用圖像的中心和中心輪廓之間的差異。你可以使用fitEllipse來計算輪廓的中心。這將使您粗略地逼近輪廓的中心。你也將得到輪廓所指向的角度。
(x_centre,y_centre),(majoraxis,minoraxis),angle = cv2.fitEllipse(contour)
現在輪廓正在被翻譯。接下來你必須旋轉它,水平對齊它。您可以使用opencv提供的仿射變形按指定的角度旋轉圖像。
http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/warp_affine/warp_affine.html
希望這有助於。
感謝您的幫助。 – Aleem 2015-04-09 15:28:33