cuốn sách gpt4 ai đã làm

OpenCV 正方形 : filtering output

In lại Tác giả: Vũ trụ không gian 更新时间:2023-11-03 21:04:12 29 4
mua khóa gpt4 Nike

这是方 block 检测示例的输出我的问题是过滤这个方 block

http://ozsulastik.com/ocvsquares.png

  • 第一个问题是它为同一区域绘制多条线;
  • 第二个是我只需要检测对象而不是所有图像。

另一个问题是我必须只取除所有图像之外的最大对象。

http://ozsulastik.com/ocvsquares2.png

检测代码如下:


static void findSquares(const Mat& image, vector >& squares){



squares.clear();

Mat pyr, timg, gray0(image.size(), CV_8U), 灰色;

//缩小和放大图像以滤除噪声
pyrDown(图像,pyr,尺寸(image.cols/2,image.rows/2));
pyrUp(pyr, timg, image.size());
矢量<><点>>轮廓;

//在图像的每个颜色平面中找到正方形
对于(int c = 0;c < 3;c++)
{
int ch[] = {c, 0};
mixChannels(&timg, 1, &gray0, 1, ch, 1);

//尝试几个阈值级别
for( int l = 0; l < N; l++ )
{
//hack:使用 Canny 而不是零阈值级别。
//Canny 帮助捕捉带有渐变阴影的正方形
如果(我==0)
{
//应用 Canny。从 slider 中获取上阈值
//并将 lower 设置为 0(强制边缘合并)
Canny(gray0, gray, 0, thresh, 5);
//扩大精明的输出以消除潜在的
//边缘段之间的孔
膨胀(灰色,灰色,Mat(),点(-1,-1));
}
别的
{
//如果 l!=0 应用阈值:
灰色 = 灰色 0 >= (l+1)*255/N;
}

//查找轮廓并将它们全部存储为列表
findContours(灰色,轮廓,CV_RETR_LIST,CV_CHAIN_APPROX_SIMPLE);

矢量<点>约;

//测试每个轮廓
对于( size_t i = 0; i < contours.size(); i++ )
{
approxPolyDP(Mat(contours[i]), approx, arcLength(Mat(contours[i]), true)*0.02, true);

如果(大约大小()== 4 &&
fabs(contourArea(Mat(approx))) > 1000 &&
isContourConvex(Mat(approx)) )
{
双最大余弦 = 0;

对于(整数 j = 2;j < 5;j++)
{
//找到关节边之间夹角的最大余弦值
双余弦 = fabs(角度(约[j%4],约[j-2],约[j-1]));
maxCosine = MAX(maxCosine, 余弦);
}

如果(最大余弦 < 0.3)
squares.push_back(大约);
}
}
}
}

}

câu trả lời hay nhất

Bạn cần kiểm tra findContours() 的标志.您可以设置一个名为 CV_RETR_EXTERNAL 的标志,它将只返回最外层的轮廓(它内部的所有轮廓都被丢弃)。这可能会返回整个框架,因此您需要缩小搜索范围,这样它就不会检查您的框架边界。使用函数 copyMakeBorder() 来完成此操作。我还建议删除扩张功能,因为它可能会导致线条两侧出现重复轮廓(如果删除扩张功能,您甚至可能不需要边框)。这是我的输出: nhập mô tả hình ảnh ở đây

关于OpenCV 正方形 : filtering output,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14975304/

29 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress