Для обнаружения и обработки изображения партитуры, а затем каждого посоха я действую следующим образом:
Я делаю снимок, и мы остаемся с горизонтальными компонентами, чтобы остаться наедине с линиями персонала, мы удаляем ненужные компоненты и шум, и мы помечаем линии с помощью 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);
Теперь мне нужно вынуть разные посохи, чтобы извлечь их из исходного изображения. Но я не могу придумать, как это сделать ....