Перейти к содержимому
Compvision.ru

Halloween

Пользователи
  • Количество публикаций

    24
  • Зарегистрирован

  • Посещение

Репутация

0 Новичек

О Halloween

  • Звание
    Бывалый
  1. Как прикрутить OpenCV к билдеру?

    Доработал свою программу.Результатом удовлетворен на все 100! Особая благодарность Nuzhny,направил на путь истины!Большущее тебе спасибо!
  2. Доработал свою программу.Результатом удовлетворен на все 100! Особая благодарность Nuzhny,направил на путь истины!Большущее спасибо
  3. Желательно 8-ми связные. Насчет соединения конечных точек,то я сейчас работаю над этим,используя фильтр Калмана(фильтр прогнозирует след. положение точки по траектории).Это должно помочь сгладить места соединений. Без разницы откуда удалять,лишь бы не получилось лишних разрывов и процесс был автоматизирован.Свою идею как это сделать я представил выше(методом дифференцирования).
  4. Практически то,но маленькие разрывы всё-равно остались.Посмотрите как я реализовал свою задачу,воспользовавшись тем,что вы предложили ранее: dist.cpp Решение действенно,но для него нужно давать четкое изображение без шумов и утолщений,иначе будут баги. Есть идея почистить изображение с помощью дифференцирования.Поясню алгоритм: 1.Двигаться по горизонтали,пока не найдется точка. 2.Если точка нашлась-двигаться при координате Х этой точки только уже по-вертикали(по Y): -если точка не нашлась-оставляем найденную и двигаемся дальше; -если нашлась,то накладываем точку ,найденную по-вертикали на точку,найденную по-горизонтали(логическое ИЛИ).Таким образом получаем нужную нам точку,а остальные отбрасываем. 3.Двигаемся дальше. Алгоритм вроде оптимальный,но никак не дойду мыслями,как его красиво реализовать в VS.
  5. Мне скорее надо убрать лишние помехи (шумы) с линий!Просто если я сделаю кривую гладкой,то я не решу свою задачу ,потому что будут большие потери.А разрывность я устраняю другим методом.
  6. Как прикрутить 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 потери большие...
  7. Находим скелет (супер :))

    Что верно,то верно Спасибо!
  8. Находим скелет (супер :))

    А возможен вариант переделки программы под статическое изображение.Чтоб просто загружать нужную картинку? Просто для меня сделать это в Builder туговато,поэтому и спрашивал про VS.
  9. Находим скелет (супер :))

    Заголовочные я с разных проектов пособирал. Всё сделал как Вы сказали,проект прокомпилировался без ошибок ,но в результате выдал нерабочую форму:
  10. Находим скелет (супер :))

    Поставил ,теперь вылезла такая история: А нету этого же проекта в Visual Studio,с ним запар поменьше будет?
  11. Находим скелет (супер :))

    Архив с проектом skeleton.rar не запускается!Возникает ошибка следующего характера: Не пойму где прокол...
  12. Это немного не то,мне нужна скорее именно однопикселизация,а не скелетизация!
  13. Есть монохромное изображение с линиями,но линии нечёткие.Пытаюсь однопикселизировать изображение так,чтобы потери были минимальные и остался только контур. Например,изображение: test.bmp Нужно убрать нечеткости такого рода: 3.bmp dilate.bmp Кто сталкивался с подобной проблемой,буду рад за информацию.
  14. Как прикрутить OpenCV к билдеру?

    Например,какую морфологию?Я просто боюсь,что это будет получится тяжелая и заковыристая задача и алгоритм получится громоздким.
  15. Как прикрутить OpenCV к билдеру?

    А можно ли реализовать создание треков так,чтобы они прорисовывались только один раз(однопиксельно) без "утолщений".Это нужно ,чтобы избежать трудностей в дальнейшем.
×