gpt4 book ai didi

image-processing - 如何使用opencv查找凸性缺陷?

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

我有以下代码

        #include"opencv2/opencv.hpp"

#include<iostream>
#include<math.h>

using namespace std;
using namespace cv;

main()
{
Mat img1,img2,sub,gray1,gray2,lab,ycbcr;
int v[3];

int row,col,i,j,t;
VideoCapture cap(0);

namedWindow("current");

cap>>img1;
sub=img1;

row=img1.rows;
col=img1.cols;

cvtColor(img1,gray1,CV_BGR2GRAY);


vector<vector<Point> > cont;

vector<Vec4i> hierarchy;

while (1) {

cap>>img2;

cvtColor(img2,gray2,CV_BGR2GRAY);


for(i=0;i<row;++i)
{
for (j=0; j<col; ++j)
{


if(abs(gray1.at<uchar>(i,j) - gray2.at<uchar>(i,j))>10)
{
sub.at<Vec3b>(i,j)[0] = img2.at<Vec3b>(i,j)[0];
sub.at<Vec3b>(i,j)[1] = img2.at<Vec3b>(i,j)[1];
sub.at<Vec3b>(i,j)[2] = img2.at<Vec3b>(i,j)[2];

}
else
{

sub.at<Vec3b>(i,j)[0]=0;
sub.at<Vec3b>(i,j)[1]=0;
sub.at<Vec3b>(i,j)[2]=0;
}

}


}


cvtColor(sub,ycbcr,CV_BGR2YCrCb);

inRange(ycbcr,Scalar(7,133,106),Scalar(255,178,129),ycbcr);
findContours(ycbcr,cont,hierarchy,CV_RETR_LIST,CV_CHAIN_APPROX_SIMPLE);
Scalar color = CV_RGB(255,255,255);
vector<vector<Point> > hullPoints(cont.size());
for( i = 0; i < cont.size(); i++ )
convexHull(cont[i],hullPoints[i],false);

for(i = 0 ;i >= 0; i = hierarchy[i][0] )
{
drawContours( ycbcr, cont, i, color,1, CV_AA, hierarchy );//for drawing contours
drawContours( ycbcr, hullPoints, i, color,2, CV_AA, hierarchy );//for drawing convex hull
}

flip(ycbcr,ycbcr,1);
imshow("current",ycbcr);

if(waitKey(33)=='q')
break;

img1=img2.clone();
}

}

如何找到这个 convexHull..cvConvexityDefects() 中的凸性缺陷需要 const cvArr * 作为参数。但是我有来自 convexHull 的向量点类型结果..那么如何输入 cast ..?

最佳答案

您应该使用 vector<vector<int>>输入您的 convexHull计算:

convexHull(Mat(contours), hullsI, false); // false means it will return the indices at which the hulls are found and not the point of the convex hull

然后调用:

convexityDefects(contours, hullsI, defects);

类似于Convexity defects C++ OpenCv以及许多其他 SO 问题 :) 希望对您有所帮助!

关于image-processing - 如何使用opencv查找凸性缺陷?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9156250/

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