PDA

View Full Version : ايجاد خطوط بين نقاط لبه



sanaz e
چهارشنبه 02 اسفند 1391, 08:16 صبح
با سلام
من تصويرم را پس از اعمال grayscale در متلب از طريق canny لبه يابي كردم كه در خروجي لبه ها بصورت نقطه هست. اما ميخواهم لبه ها بصورت خط به يكديگر وصل شوند.
لطفا راهنمايي بفرماييد.
با تشكر

sanaz e
یک شنبه 18 فروردین 1392, 08:04 صبح
من خيلي خيلي گير افتادم
لطفاً راهنمايي فرماييد....

sanaz e
یک شنبه 18 فروردین 1392, 08:08 صبح
من در واقع كدي مي خواهم كه در آن يك تصوير را لبه يابي كند (مثلا با CANNY) بطوري كه يك لبه تميز بصورت خطوط توليد كند. چون در حالت عادي اعمال canny لبه هاي نقطه اي توليد مي كند.
لطفا راهنمايي فرماييد.
ضمنا تصويرم يك تصوير راديولوژي هست.
ممنونم

مصطفی ساتکی
یک شنبه 18 فروردین 1392, 20:42 عصر
نقاطی که canny تولید می کنه تک پیکسلی هستند و اگر می خواهید مجموعه ای از خطوط با طول بزرگتر از L می خواهید بایستی به صورت دستی کنتور را پیمایش کنید.

sanaz e
پنج شنبه 22 فروردین 1392, 17:04 عصر
با تشکر دوست عزیز
من تونستم با راهنمایی دوستان برنامه ای بنویسم که عکسم رو لبه یابی کنم.
البته لبه های ضخیمتر تولید میکنه ولی خوبیش اینه که مرزها از این طریق آشکار میشه.
همونطور که گفتم تصویر من یک تصویر دیجیتالی رادیولوژی از فک هستش.
الان من می خوام که تصویر لبه یابی شده را پیمایش و دندانها را جداسازی کنم.
:متفکر:
به نظر شما بهترین راه برای این اینکه تشخیص بدم از کدام تا کدام پیکسل یا لبه مربوط به کدام دندان هست، چیست؟

امیدوارم منظورم را به درستی بیان کرده باشم.
ممنون از راهنماییهاتون

مصطفی ساتکی
پنج شنبه 22 فروردین 1392, 17:14 عصر
لطفاً تصاویر اصلی رادیولوژی رو اینجا قرار بدید تا راهنمایتون کنم

sanaz e
پنج شنبه 22 فروردین 1392, 18:16 عصر
این تصویر اصلی هست:

102654

این تصویر عکس فوق که با برنامه البته به روش سوبل لبه یابی شده:

102655

sanaz e
پنج شنبه 22 فروردین 1392, 18:20 عصر
ببخشید عکس ضمیمه اشتباهی وارد شده. لطفا آن را نادیده بگیرید

مصطفی ساتکی
پنج شنبه 22 فروردین 1392, 22:02 عصر
تصویر قرار داده شده کیفیتش پایین هستش
به هر حال اولین کاری که بایستی انجام بدید شناسایی تقریبی محدوده افقی و عمودی ناحیه دندان ها هستش. در ابتدا تصویر را بایستی فیلتر کنید تا تصویر مطلوب برای فازهای بعدی آمده شه بر روی تصویر عملیات histogram equalize انجام دهید و سپس opening سپس adaptive threshold به روش guassian استفاده نمایید.
که برای قسمت بالایی می تونید از امتداد فک استفاده کنید و بدین وسیله موقعیت افقی تشخیص داده میشه و موقعیت عمودی دندان های بالایی تشخیص داده میشه حال برای پیدا کردن منتها علیه ریشه دندانهای پایین در ابتدا یک curve بین فاصله دندان های پایین فیت کنید سپس projection افقی در راستای خود curve بگیرید تا پایین حالا تو این projection ردیفی که بیشترین فرکانس با پهنای باندی که شما مد نظرتونه (پهنای تقریبی ریشه دندان) را محاسبه کنید به انداره یک پهنا موقعیت بدست آمده را به سمت پایین حرکن بدید موقعیت تقریبی ریشه در فک پایین هم بدست آمد.
حال در این ناحیه ببینید دندان های عقل وجود دارند یا نه اگر وجود دارند شناسایی و ناحیه را کاهش بدید و بعد هم 2 دندان چانه در 2 طرف با توجه به اندازه ناحیه اندازه تقریبی این دندان های قابل تخمین هستش
سپس می مونه دندان های تک ریشه ای که آنها رو هم میشه از طریق projection عمودی یا watershed از هم جدا کرد.

موفق باشید

sanaz e
پنج شنبه 22 فروردین 1392, 23:18 عصر
ممنونم از لطف و توجهتون
مطالبی که فرمودید رو روی عکس لبه یابی شده دنبال کنم یا اصلی؟

sanaz e
جمعه 23 فروردین 1392, 08:42 صبح
برداشت من از مطلبتون اینه که از نظر شما نیازی به لبه یابی نیست. درسته؟

sanaz e
جمعه 23 فروردین 1392, 11:14 صبح
این تصویر من بعد از مرحله hystogram Equlize هستش:

102687

sanaz e
جمعه 23 فروردین 1392, 11:15 صبح
و این تصویر بعد از مرحله opening:

102688

مصطفی ساتکی
جمعه 23 فروردین 1392, 13:04 عصر
بله کلیه کارها را روی تصویر اصلی انجام بدید.

sanaz e
جمعه 23 فروردین 1392, 14:05 عصر
میشه توضیح بدید adaptive threshold به روش guassian به چه صورت هست؟

یا اینکه توی متلب به چه صورت انجامش بدم؟

مصطفی ساتکی
شنبه 24 فروردین 1392, 11:45 صبح
یعنی اینکه تو هر بلوک تصویر برای تعیین مقدار پیکسل جاری از توزیع گوسی استفاده کنید

linux
شنبه 24 فروردین 1392, 13:32 عصر
با سلام
من تصويرم را پس از اعمال grayscale در متلب از طريق canny لبه يابي كردم كه در خروجي لبه ها بصورت نقطه هست. اما ميخواهم لبه ها بصورت خط به يكديگر وصل شوند.
لطفا راهنمايي بفرماييد.
با تشكر
چرا نمیایید از کتابخانه‌های موجود مثل openCV استفاده کنید؟ هدف شما تولید نرم‌افزار کاربردی هست یا حل مساله؟

مصطفی ساتکی
شنبه 24 فروردین 1392, 14:11 عصر
خود matlab فکر نکنم همچین تابعی داشته باشه ولی تو سایت matwork (http://www.mathworks.com/matlabcentral/fileexchange/8647-local-adaptive-thresholding)یکی واسش mfile نوشته.

sanaz e
سه شنبه 27 فروردین 1392, 23:25 عصر
چرا نمیایید از کتابخانه‌های موجود مثل openCV استفاده کنید؟ هدف شما تولید نرم‌افزار کاربردی هست یا حل مساله؟


کار من یک کار تحقیقاتی دانشگاهی هست که حتماً نباید خروجی آن نرم افزار کاربردی باشد ولی باید بتوانم آن را در متلب شبیه سازی کنم.

ضمناً من در متلب بسیار مبتدی هستم و اطلاعی از openCV ندارم. خواهش می کنم بیشتر توضیح دهید.

با سپاس فراوان

sanaz e
سه شنبه 27 فروردین 1392, 23:33 عصر
خود matlab فکر نکنم همچین تابعی داشته باشه ولی تو سایت matwork (http://www.mathworks.com/matlabcentral/fileexchange/8647-local-adaptive-thresholding)یکی واسش mfile نوشته.



دوست عزیز من نتونستم سایت فوق را ببینم.