Распознавание сложных форм - PullRequest
5 голосов
/ 14 ноября 2011

Мне нужно завершить демонстрационный проект, целью которого является распознавание зубов на рентгеновском изображении. Я не знаком с этой темой, и я не уверен, какой подход будет предпочтительным в этом случае. (Я думал о сегментации текстуры - но это всего лишь предположение, и я до сих пор не уверен, что это вариант)

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

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

Заранее спасибо.

Все образцы изображений похожи на это (меня особенно интересуют второй и третий зубы справа):

Ответы [ 2 ]

2 голосов
/ 14 ноября 2011

Я бы определенно рекомендовал использовать OpenCV .Имеется оболочка C # EmguCV , что должно быть полезно.

Вы также можете рассмотреть возможность просмотра библиотеки ITK , которая имеет гораздо больше регистрации и сегментации изображений.типов алгоритмов, чем OpenCV, но я считаю, что есть только реализация C ++.

Надеюсь, что это полезно!

1 голос
/ 14 ноября 2011

Ой, выглядит больно! (фотографии) Я нашел библиотеку AForge очень полезной. Он написан на C #, и вы можете скачать исходный код здесь:

http://www.aforgenet.com/framework/downloads.html

и хорошая статья о его использовании здесь:

http://www.codeproject.com/KB/GDI-plus/Image_Processing_Lab.aspx

Возможно, оттенки серого, а затем пороговое значение с высокой интенсивностью пикселей, чтобы показать только самую светлую часть зуба, затем обнаружение края или контурный след. Похоже, что верхний край зуба имеет наивысшую интенсивность пикселей, поэтому, как только эти контуры найдены, вы можете сделать несколько триггеров, чтобы найти угол этого контура, используя его конечности lhs и rhs?

...