0
我試圖使用OpenCV4Android SDK和我的Android手機相機檢測形狀(三角形和正方形)。 到目前爲止,我需要修改這部分的代碼,但我不知道如何使用openCv Approxpoly函數來檢測這些形狀 任何幫助將不勝感激。在OpenCV中檢測三角形Approxpoly
public void process(Mat rgbaImage)
{
Imgproc.pyrDown(rgbaImage, mPyrDownMat);
Imgproc.pyrDown(mPyrDownMat, mPyrDownMat);
Imgproc.cvtColor(mPyrDownMat, mHsvMat, Imgproc.COLOR_RGB2HSV_FULL);
Core.inRange(mHsvMat, mLowerBound, mUpperBound, mMask);
Imgproc.dilate(mMask, mDilatedMask, new Mat());
List<MatOfPoint> contours = new ArrayList<MatOfPoint>();
Imgproc.findContours(mDilatedMask, contours, mHierarchy, Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_SIMPLE);
// Find max contour area
double maxArea = 0;
Iterator<MatOfPoint> each = contours.iterator();
while (each.hasNext())
{
MatOfPoint wrapper = each.next();
double area = Imgproc.contourArea(wrapper);
if (area > maxArea)
maxArea = area;
}
//Imgproc.approxPolyDP(mSpectrum, approxCurve, epsilon, closed);
// Filter contours by area and resize to fit the original image size
mContours.clear();
each = contours.iterator();
while (each.hasNext())
{
MatOfPoint contour = each.next();
if (Imgproc.contourArea(contour) > mMinContourArea*maxArea)
{
Core.multiply(contour, new Scalar(4,4), contour);
mContours.add(contour);
}
}
}
我想我明白代碼在做什麼,但是如何在上面的代碼中實現?我想爲了檢測三角形,輪廓尺寸應該是3。 – Iker