gpt4 book ai didi

c++ - 无法执行 approxPolyDP()

转载 作者:行者123 更新时间:2023-11-28 02:59:42 25 4
gpt4 key购买 nike

#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>

using namespace cv;
using namespace std;

int main()
{
Mat image=cvLoadImage("C:/Users/Administrator/Desktop/Desert.jpg",1);
Mat imagegray, output, imageresult;;

int thresh=150;

cvtColor(image, imagegray,CV_BGR2GRAY);

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

Canny(imagegray, imageresult,thresh, thresh*2);

findContours(imageresult,contours,hierarchy,CV_RETR_TREE,CV_CHAIN_APPROX_SIMPLE,cvPoint(0,0));

Mat drawing=Mat::zeros(imagegray.size(),CV_8UC3);
approxPolyDP(contours,imageresult,100,true);

namedWindow("Display",1);
imshow("Display",imageresult);
waitKey(0);
return(0);
}

在上面给出的代码中

approxPolyDP()

功能不工作。在使用断点运行它时,程序不会在此函数之后执行。这里给出的代码有什么问题?

最佳答案

以下代码有效

Mat image=cvLoadImage("face1.jpg",1);
Mat imagegray, output, imageresult;;
Mat canny;

cvtColor(image, imagegray,CV_BGR2GRAY);

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

Canny(imagegray,canny,50,150);

findContours(canny,contours,hierarchy,CV_RETR_TREE,CV_CHAIN_APPROX_SIMPLE,cvPoint(0,0));



Mat drawing=Mat::zeros(imagegray.size(),CV_8UC3);
vector<Point>contours_approx;
approxPolyDP(contours[0],contours_approx,100,true)
//approxPolyDP(contours,imageresult,100,true);

drawContours(image,contours,-1,Scalar(255,0,0));

namedWindow("Display");
imshow("Display",image);
waitKey(0);
return(0);

findcontour() 需要一个 canny/threshold 二值图像作为输入。

approxPolyDP() 是将一条曲线逼近到另一条曲线(点 vector )。

关于c++ - 无法执行 approxPolyDP(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21129863/

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