gpt4 book ai didi

c++ - OpenCV findContours 不工作

转载 作者:太空宇宙 更新时间:2023-11-03 22:13:54 25 4
gpt4 key购买 nike

我已经被这个问题困了好几天了,你是我最后的希望,stackoverflow!

Windows 7、Visual Studio Ultimate 2012、OpenCV 2.4.8。

来源:

int main(){

cv::VideoCapture capture(0);
if(!capture.isOpened()){
printf("Capture failure\n");
return -1;
}

cv::Mat frame;
capture >> frame;
if(frame.empty()) return -1;

cv::namedWindow("Video");
cv::namedWindow("Contour");

while(true){
capture >> frame;
if(frame.empty()) break;

cv::Mat cont = frame;

cv::vector<cv::Vec4i> hierarchy;
cv::vector<cv::vector<cv::Point> > contours;

cv::threshold(cont, cont, 128, 255, cv::THRESH_BINARY);
cv::inRange(cont, cv::Scalar(128, 128, 128), cv::Scalar(255, 255, 255), cont);

cv::findContours(cont, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE);

for(size_t i=0; i<contours.size(); i++){
cv::drawContours(frame, contours, i, cv::Scalar(0,255,255), 10);
}

cv::imshow("Contour", cont);
cv::imshow("Video", frame);

if(cv::waitKey(10)==27 ) break;
}

cv::destroyAllWindows();
return 0;
}

相当简单的代码,对吧?如果不是很明显,我想做的是从我的网络摄像头中获取所有应用了 cv::inRange 的轮廓。就是这样。

这段代码给我 cv::Exception at memory location 0x0045F7CC

编辑:还给我 OpenCV 错误:cvStartFindContours 中不支持的格式或格式组合([Start]FindContours 仅支持 8uC1 和 32sC1 图像),文件...... .\opencv\modules\imgproc\src\contours.cpp 来自命令行。

我看过使用 cv::findContours() 的例子,所有这些都表明你需要一个二进制 cv::Mat,我从 cv::threshold()cv::inRange() 但它对我仍然不起作用。帮助!

最佳答案

我解决了!这是代码:

while(true){
capture >> frame;
if(frame.empty()) break;

cv::Mat cont, threshold;
cont = frame.clone();
cv::cvtColor(cont, cont, cv::COLOR_BGR2GRAY);

cv::vector<cv::Vec4i> hierarchy;
cv::vector<cv::vector<cv::Point> > contours;

cv::threshold(cont, cont, 128, 255, cv::THRESH_BINARY);
threshold = cont.clone();

cv::findContours(cont, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE);

for(size_t i=0; i<contours.size(); i++){
cv::drawContours(frame, contours, i, cv::Scalar(0,0,255), 2);
}

cv::imshow("Contour", threshold);
cv::imshow("Video", frame);

if(cv::waitKey(10)==27 ) break;
}

关于c++ - OpenCV findContours 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22472739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com