gpt4 book ai didi

opencv - 有没有办法检测中间的空心圆?

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

我试图检测一个全音符和一个二分音符,但是对于二分音符,我似乎无法检测到它,因为它是一个空心的圆圈。有没有办法检测空心圆圈?

示例: enter image description here

这是我的代码:

#include "opencv2/opencv.hpp"

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{

// Read image
Mat im = imread("beethoven_ode_to_joy.jpg", IMREAD_GRAYSCALE);

// Setup SimpleBlobDetector parameters.
SimpleBlobDetector::Params params;

// Change thresholds
params.minThreshold = 10;
params.maxThreshold = 200;

// Filter by Area.
params.filterByArea = true;
params.minArea = 15;

// Filter by Circularity
params.filterByCircularity = true;
params.minCircularity = 0.1;

// Filter by Convexity
params.filterByConvexity = true;
params.minConvexity = 0.01;

// Filter by Inertia
params.filterByInertia = true;
params.minInertiaRatio = 0.01;


// Storage for blobs
vector<KeyPoint> keypoints;


#if CV_MAJOR_VERSION < 3 // If you are using OpenCV 2

// Set up detector with params
SimpleBlobDetector detector(params);

// Detect blobs
detector.detect(im, keypoints);
#else

// Set up detector with params
Ptr<SimpleBlobDetector> detector = SimpleBlobDetector::create(params);

// Detect blobs
detector->detect(im, keypoints);
#endif

// Draw detected blobs as red circles.
// DrawMatchesFlags::DRAW_RICH_KEYPOINTS flag ensures
// the size of the circle corresponds to the size of blob

Mat im_with_keypoints;
drawKeypoints(im, keypoints, im_with_keypoints, Scalar(0, 0, 255), DrawMatchesFlags::DRAW_RICH_KEYPOINTS);

// Show blobs
imshow("keypoints", im_with_keypoints);
imwrite("a.jpg", im_with_keypoints);
waitKey(0);

}

最佳答案

我给你的建议是使用一些机器学习算法。简而言之,整个想法如下:您首先需要为图像创建一个训练集。在训练集中,您需要标记一些东西。一个标签是“空心圆”。然后你标记其他笔记。我不知道有多少个音符,但你可以将每个音符单独标记,或者将所有不是圣圈的音符标记为一个东西。您也可以标记背景。然后你在你的训练数据上训练一个机器学习模型,然后将你的测试数据(模型在训练时没有看到的图像)输入它并获得准确性。您可以将数据拆分为 training and validation sets用于培训。

对于标签,您可以使用 this website .

关于opencv - 有没有办法检测中间的空心圆?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34531911/

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