![]() |
فقط سوالی که من دارم اینه که
شاید نقاطی از یک تصویر سالم استخراج بشه که بردار ویژگی اونها (همون بردار 128 تایی) خیلی شبیه به بعضی نقاط در یک تصویر معیوب باشه. اینجا الگوریتم به مشکل نمیخوره؟! چون تصاویر چوب سالم و معیوب دارای نواحی مشترکی با یکدیگر هستند یعنی بعضی نواحی تصاویر سالم و معیوب مثل هم هس و بنابراین نقاط استخراجی و بردارهای ویژگیشون با هم یکی میشه!!! به نظرم بعد محاسبه نقاط و بردارهای ویژگی باید کارهای دیگه ای هم انجام بشه مثلا برای تک تک نقاط در تصویر سالم فاصله اقلیدسی اونها(بردار 128تایی) با تک تک نقاط در تصویر معیوب محاسبه بشه و اگه فاصله کم بود یعنی این نقاط دارای ویژگگیهای مشابه هستن که باید حذف بشن. پس این نقاطو حذف میکنیم و با این نقاط عمل کلاسه بندیو انجام نمیدیم |
نقل قول:
|
با سلام و تشکر.
امکانش هست سایتی معرفی کنید که تابع pca-sift رو با matlab پیاده سازی کرده باشه.... من از سایت PCA-SIFT دانلود کردم ولی به زبان matlab نیست. با تشکر. |
منم همون سی پلاس پلاسشو دارم
اگه برین سمت opencv خیلی بهتره چون بیشتر کدها تو این زمینه سی پلاس پلاس هس نخیر آقای رها الگوریتمهایی مانند pca برای کاهش تعداد ویژگی به کار میروند نه کاهش تعداد نقاط!!! |
کاهش نقاط کلیدی
نقل قول:
در بخشی از تابعی که من از sift دارم نقاط کلیدی را با استفاده از دستور زیر بدست می آورد. و سپس تعداد نقاط دو در متغیر num میریزد. كد:
command = [command ' <tmp.pgm >tmp.key']; آیا کاهش resolution پیشنهاد خوبیست؟ من این کار رو برای تصویری که نقاط کلیدی اش 1649 بود انجام دادم نقاط کلیدی اش 1104 شد..... و با تغییر سایز تصویر نقاط 604 شد...... با تشکر. |
سلام مجدد
گویا شما مطالب منو نخوندید من گفتم تابعی که نقاط ویژگی رو پیدا میکنه احتمالا با نام featuredetection خطوط پایینو ببینید این برای الگوریتم surf هست که روشی مشابه با sift هست اون مقدار آستانه ای که گفتم اینجا 1100 انتخاب شده با تغییر اون می تونین تعداد نقاط کم یا زیاد کنین cv::SurfFeatureDetector detector( 1100 ); std::vector<cv::KeyPoint> keypoints1; std::vector<cv::KeyPoint> keypoints2; detector.detect(rgb1,keypoints1); detector.detect(rgb2,keypoints2); روشی که شما گفتین روش مناسبی نیس که با کم کردن رزولوشن تعداد نقاط رو کم کنین چون این طوری دارین اطلاعات تصویرو دور میریزین. بهتره این کارو بسپارین به خود الگوریتم sift و با تنظیم پارامترهاش این کارو بکنین. البته اگه تصویرتون دارای رزولوشن خیلی بالایی هست میتونین تصویرو کوچک کنین مثلا رزولوشن 2000*3000 خیلی زیاده و باعث کندی برنامتونم میشه رزولوشن مناسب حدود 640*480 یا 800*600 هست البته بسته به کاربردتون شاید دقت بالا و نیاز به تفکیک پذیری بالا داشته باشین اون موقع رزولوشن بالا نیاز هس |
با سلام.
درسته متوجه شدم. من تو برنامه matlab دنبالش میگشتم پیدا نکردم. تو کدی که به c++ داشتم پیدا کردم.. متغیری هم به نام FVSIZE با مقدار 128 تعریف شده که فک میکنم مربوط به بردار ویژگی است. با تشکر. |
برنامه متلبشم این پارامترها رو داره!!!
|
با سلام.
راستش من یک کد sift دیگه هم به زبان matlab دارم از سایت Index of /~vedaldi/assets/sift/binaries دانلود کردم ولی وقتی اجراش می کنم این error رو میده: كد:
??? Undefined function or method 'imsmooth' for input arguments of type 'double'. |
نقل قول:
ببخشید مگر تابع svmpredict روی تصاویر تست اعمال نمی شود... در تصاویر تست هم که ما می خواهیم تابع خودش تشخیص دهد تصویر معیوب است یا خیر پس LABEL را که ما نمی توانیم بدهیم... مگر خود این تابع نباید LABEL را برای ما مشخص کند؟؟؟؟؟ :confused::confused::confused: :2::2::2: |
زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۰۹:۰۸ بعد از ظهر ميباشد. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.