2010-08-22 3 views
7

Мне нужно подсчитать ящики на складе, используя методы обнаружения края; изображения будут взяты из трехмерной модели склада, и в предлагаемой системе будут использоваться 3 изображения в 3 разных углах, чтобы покрыть всю площадь склада.Обнаружение края изображения

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

+1

Попробуйте http://stackoverflow.com/questions/1391212/best-articles-to-start-learning-about-edge -detection-image-признание – PaulG

+3

Это очень сложная проблема для решения! Я сомневаюсь, что вы получите исчерпывающий ответ на SO, ваш лучший вариант, вероятно, будет искать Google в некоторых исследовательских статьях. –

+4

Извините за тупость: Это звучит так: «У меня нет опыта пилотирования, не могли бы вы рассказать мне, как летать на 747 из Лондона в Токио». Прочитайте пару книг по обработке изображений и компьютерному зрению, реализуйте алгоритмы, экспериментируйте с ними. Прежде чем вы это сделаете, я не думаю, что вы можете решить такую ​​проблему. – Niki

ответ

10

Для быстрого начала я хотел бы предложить, глядя на этих двоих:

Это наиболее широко используемые фильтры обнаружения края с очень хорошими результатами.

Если вы начинаете изучать компьютерное зрение, вы также должны узнать о typical operations in image processing и convolution.

OpenCV library - отличная библиотека, которая реализует множество алгоритмов компьютерного зрения, в том числе упомянутых выше операторов.

+0

Благодарим вас за комментарий к уму, я выбрал canny как мой alogrithm, , если бы я использовал OpenCV или Mathlab, мой лектор не будет очень счастлив, дайте какое-нибудь предложение узнать подробности или учебники о canny реализации в C#? – sha123

+0

Есть хорошая статья CodeProject о реализации Canny в C#: http://www.codeproject.com/KB/cs/Canny_Edge_Detection.aspx –

1

Отъезд AForge. Он имеет полную реализацию C# некоторых алгоритмов обнаружения границ.

+0

k Я проверю, thankz много 4 ур комментарий – sha123

0

Посмотрите Image Processing Library for C++ вопрос. Здесь можно найти несколько полезных ссылок. Предлагаемые библиотеки не только содержат описание алгоритма, но и их реализации.

+0

Спасибо за ур комментарий, но я 'm using C# как мой язык программирования – sha123

+0

Это зависит от вас точно. Но обработка изображений этого уровня - довольно ресурсоемкий материал, важны производительность. Поэтому было бы неразумно доверять его управляемой среде исполнения. OpenCV имеет некоторые низкоуровневые оптимизации, они даже предлагают процессоры Intel явно. Но если вы настаиваете на C#, вы можете легко создавать управляемые обертки поверх неуправляемых библиотек DLL. –

0

Взгляните на мои два edge detection tutorials - один основан на свертке, другой - просто математика. О, и вы должны любить пиксельные шейдеры, чтобы прочитать это :)

приветы

0

OpenCV имеет очень хороший алгоритм, который определяет замкнутых контуров на изображении и возвращает их в виде списка точек. Затем вы можете выбросить все контуры, которые не имеют 4 очка, а затем проверьте некоторые ограничения остальных (соотношение сторон прямоугольников и т. Д.), Чтобы найти оставшиеся боковые стороны. Это должно по крайней мере решить часть обработки изображений вашей проблемы, хотя превращение этого списка контуров в количество ящиков на вашем складе будет жестким.

Проверьте здесь для функции OpenCV:

http://opencv.willowgarage.com/documentation/structural_analysis_and_shape_descriptors.html#findcontours

http://opencv.willowgarage.com/documentation/drawing_functions.html#drawcontours

Смежные вопросы