Halloween
Пользователи-
Количество публикаций
24 -
Зарегистрирован
-
Посещение
Репутация
0 НовичекО Halloween
-
Звание
Бывалый
-
Доработал свою программу.Результатом удовлетворен на все 100! Особая благодарность Nuzhny,направил на путь истины!Большущее тебе спасибо!
-
Однопикселизирование(скелетизация) монохромного изображения
Halloween replied to Halloween's topic in OpenCV
Доработал свою программу.Результатом удовлетворен на все 100! Особая благодарность Nuzhny,направил на путь истины!Большущее спасибо -
Однопикселизирование(скелетизация) монохромного изображения
Halloween replied to Halloween's topic in OpenCV
Желательно 8-ми связные. Насчет соединения конечных точек,то я сейчас работаю над этим,используя фильтр Калмана(фильтр прогнозирует след. положение точки по траектории).Это должно помочь сгладить места соединений. Без разницы откуда удалять,лишь бы не получилось лишних разрывов и процесс был автоматизирован.Свою идею как это сделать я представил выше(методом дифференцирования). -
Однопикселизирование(скелетизация) монохромного изображения
Halloween replied to Halloween's topic in OpenCV
Практически то,но маленькие разрывы всё-равно остались.Посмотрите как я реализовал свою задачу,воспользовавшись тем,что вы предложили ранее: dist.cpp Решение действенно,но для него нужно давать четкое изображение без шумов и утолщений,иначе будут баги. Есть идея почистить изображение с помощью дифференцирования.Поясню алгоритм: 1.Двигаться по горизонтали,пока не найдется точка. 2.Если точка нашлась-двигаться при координате Х этой точки только уже по-вертикали(по Y): -если точка не нашлась-оставляем найденную и двигаемся дальше; -если нашлась,то накладываем точку ,найденную по-вертикали на точку,найденную по-горизонтали(логическое ИЛИ).Таким образом получаем нужную нам точку,а остальные отбрасываем. 3.Двигаемся дальше. Алгоритм вроде оптимальный,но никак не дойду мыслями,как его красиво реализовать в VS. -
Однопикселизирование(скелетизация) монохромного изображения
Halloween replied to Halloween's topic in OpenCV
Мне скорее надо убрать лишние помехи (шумы) с линий!Просто если я сделаю кривую гладкой,то я не решу свою задачу ,потому что будут большие потери.А разрывность я устраняю другим методом. -
Воспользовался следующей морфологией,но потери слишком большие,как их можно уменьшить: //cvDilate() #include "stdafx.h" #include <cv.h> #include <highgui.h> #include <stdlib.h> #include <stdio.h> #define CV_SHAPE_ELLIPSE 1 IplImage* image = 0; IplImage* dst = 0; IplImage* dilate = 0; int radius = 1; int radius_max=10; // // функция-обработчик ползунка - // радиус ядра void myTrackbarRadius(int pos) { radius = pos; } int iterations = 1; int iterations_max = 10; // // функция-обработчик ползунка - // число итераций void myTrackbarIterations(int pos) { radius = pos; } int main(int argc, char* argv[]) { IplImage* image = cvLoadImage("d:\\test.bmp", 1); // клонируем картинку dst = cvCloneImage(image); dilate = cvCloneImage(image); // окно для отображения картинки cvNamedWindow("original",CV_WINDOW_AUTOSIZE); cvNamedWindow("dilate",CV_WINDOW_AUTOSIZE); cvCreateTrackbar("Radius", "original", &radius, radius_max, myTrackbarRadius); cvCreateTrackbar("Iterations", "original", &iterations, iterations_max, myTrackbarIterations); while(1){ // показываем картинку cvShowImage("original",image); // создаём ядро IplConvKernel* Kern = cvCreateStructuringElementEx(radius+1, radius+1, radius, radius, CV_SHAPE_ELLIPSE); // выполняем преобразования cvDilate(image, dilate, Kern, iterations); // показываем результат cvShowImage("dilate",dilate); //cvSaveImage("dilate.jpg", dilate); cvReleaseStructuringElement(&Kern); char c = cvWaitKey(33); if (c == 27) { // если нажата ESC - выходим cvSaveImage("dilate.jpg", dilate); break; } } // освобождаем ресурсы cvReleaseImage(&image); cvReleaseImage(&dst); cvReleaseImage(&dilate); // удаляем окно cvDestroyWindow("original"); cvDestroyWindow("dilate"); return 0; } Пробовал на изображении: test.bmp потери большие...
-
Что верно,то верно Спасибо!
-
А возможен вариант переделки программы под статическое изображение.Чтоб просто загружать нужную картинку? Просто для меня сделать это в Builder туговато,поэтому и спрашивал про VS.
-
Заголовочные я с разных проектов пособирал. Всё сделал как Вы сказали,проект прокомпилировался без ошибок ,но в результате выдал нерабочую форму:
-
Поставил ,теперь вылезла такая история: А нету этого же проекта в Visual Studio,с ним запар поменьше будет?
-
Архив с проектом skeleton.rar не запускается!Возникает ошибка следующего характера: Не пойму где прокол...
-
Однопикселизирование(скелетизация) монохромного изображения
Halloween replied to Halloween's topic in OpenCV
Это немного не то,мне нужна скорее именно однопикселизация,а не скелетизация! -
Есть монохромное изображение с линиями,но линии нечёткие.Пытаюсь однопикселизировать изображение так,чтобы потери были минимальные и остался только контур. Например,изображение: test.bmp Нужно убрать нечеткости такого рода: 3.bmp dilate.bmp Кто сталкивался с подобной проблемой,буду рад за информацию.
-
Например,какую морфологию?Я просто боюсь,что это будет получится тяжелая и заковыристая задача и алгоритм получится громоздким.
-
А можно ли реализовать создание треков так,чтобы они прорисовывались только один раз(однопиксельно) без "утолщений".Это нужно ,чтобы избежать трудностей в дальнейшем.