比方說,我有以下的輸出圖像:獲取輪廓座標OpenCV的
基本上,我有視頻流,我想只有在輸出圖像來獲得矩形的座標。這是我的C++代碼:
while(1)
{
capture >> frame;
if(frame.empty())
break;
cv::cvtColor(frame, gray, CV_BGR2GRAY); // Grayscale image
Canny(gray, canny_output, thresh, thresh * 2, 3);
// Find contours
findContours(canny_output, contours, hierarchy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE, Point(0, 0));
// Draw contours
Mat drawing = Mat::zeros(canny_output.size(), CV_8UC3);
for(int i = 0; i< contours.size(); i++)
{
Scalar color = Scalar(rng.uniform(0, 255), rng.uniform(0,255), rng.uniform(0,255));
drawContours(drawing, contours, i, color, 2, 8, hierarchy, 0, Point());
}
cv::imshow("w", drawing);
waitKey(20); // waits to display frame
}
謝謝。
請把你的矩形在2周或3的輪廓分割(你看,因爲他們有不同的顏色)。看起來像你的輸入材料不夠好(例如邊緣圖像或某物中的小孔)。 – Micka