Как получить из музыкальной партитуры разные пентаграммы (openCV) - PullRequest
0 голосов
/ 13 января 2019

Для обнаружения и обработки изображения партитуры, а затем каждого посоха я действую следующим образом:

Я делаю снимок, и мы остаемся с горизонтальными компонентами, чтобы остаться наедине с линиями персонала, мы удаляем ненужные компоненты и шум, и мы помечаем линии с помощью HoughLinesP, мы проверяем, что линии параллельны друг другу, чтобы впоследствии соотнесите с культурой различные срезы, чтобы получить различные посохи imgen.

Наконец, мой вопрос: вы думаете о каком-нибудь другом более простом или более точном способе обнаружения и разделения различных пентаграмм?

Прикрепленное изображение, чтобы вы могли видеть, как оно будет обработано для дальнейшей резки.

Теперь мне нужно получить разные пентаграммы. предварительная обработка изображения

постобработка изображения

int offset_x = 50;
int offset_y = 50;

cv::Rect roi;
roi.x = offset_x;
roi.y = offset_y;
roi.width = horizontal.size().width - (offset_x * 2);
roi.height = horizontal.size().height - (offset_y * 2);

cv::Mat crop = horizontal(roi);
namedWindow("crop", WINDOW_NORMAL);
cv::imshow("crop", crop);
cv::waitKey(0);


//Use HougLines to detect de diferents lines of each pentagram
HoughLinesP(crop, lines, 1, CV_PI / 180, 80, 200, 10);

//We paint it
for (size_t i = 0; i < lines.size(); i++) // Draw the lines
{

    line(crop, Point(lines[i][0], lines[i][1]),Point(lines[i][2], lines[i][3]), Scalar(255, 255, 255), 3, 3);
}


// the final result

namedWindow("Detected Lines", WINDOW_NORMAL);
imshow("Detected Lines", crop);


waitKey(0);

Теперь мне нужно вынуть разные посохи, чтобы извлечь их из исходного изображения. Но я не могу придумать, как это сделать ....

1 Ответ

0 голосов
/ 17 января 2019

Вот учебник, который делает именно то, что делает ваш первый алгоритм: https://docs.opencv.org/3.4.0/dd/dd7/tutorial_morph_lines_detection.html
Я могу представить, что это немного проще, чем ваш подход. Кроме того, противоположный случай показан в примере, где вы только сохраняете свои оценки и уточняете их, предположительно, что вы хотите сделать.

...