![]() |
راهنمایی در مورد کد متلب
با سلام
لطفا اگه ممکنه در مورد کد زیر کمکم کنید من تازه کار کردن با متلب رو شروع کردم for i=1:104 tmp=int2str(i) database(:,:,i)c=imread(tmp,'tif')c end البته c تو خط بالا اضافه نوشتم برای اینکه کدها درست نوشته نمیشد این کد مربوط به PCA که مرحله فراخوانی تصویره ولی چرا integer به string تبدیل شده .... چطوری میشه ماتریس به صورت رشته در بیاد سوال دیگه ام اینه که این دستور database(:,:,i) چیکار میکنه هر چی تو help matlab گشتم چیزی پیدا نکردم ..... thanks in advance |
دوست عزیز احتمالا شما 104تا تصویر دارید که اسامی آنها از 1 تا 104 نام گذاری شده اند.
تابع imread هم برای خواندن تصاویر استفاده می شود. از آنجا که ورودی این تابع باید رشته باشد اول اسامی به رشته تبدیل شده و سپس خوانده می شوند. برای همه 104 تصویر این کار انجام می شود و نهایتا تصاویر در database قرار داده شده اند اگر ادامه کدها را هم قرار می دادید بهتر متوجه می شدیم که چه کاری قرار است انجام بگیرد. برای تبدیل بردارها و ماتریس ها هم می توانید از همین int2str استفاده کنید. |
سلام دوست عزیز ممنون از جواب ، help متلب رو هم نگاه کردم در مورد دستور imread
ورودی این دستور باید رشته باشه درسته ولی من یه عکس رو تو شاخه متلب با دستور imread و imshow نمایش دادم سوالم اینه که چطور شد که بدون تبدیل عکس به رشته ، عکس توسط متلب نمایش داده شد پس تکلیف این کد int2str اینجا چی میشه .... >> p=imread('22.jpg'); دستور رو برا یه ماترس کوچیک نوشتم ولی در نتیجه هیچ اتفاقی نیفتاد این هم کدش>> imshow(p) >> r=[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25] r = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 >> w=int2str(r) w = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 A(:,:,k) is the kth page of three-dimensional array A اینجا چه نیازی بوده که دیتا بیس به صورت 3 بعدی تعریف بشه کر مریوط به خواندن عکس ها همین کد که تو پست اول گذاشتم |
شما فقط اسمشو به رشته تبدیل می کنید خود عکسو که نه
در ضمن شما اسمشو به صورت رشته دادید باید هم نشون بده ولی اینجا از یک اندیس برای اسم تصاویر استفاده کرده، اندیس هر بار یکی اضافه میشه ولی چون integer هست باید تبدیل به رشته بشه. در مورد توضیحات بیشتر باید تمام کدها رو ببینم. |
ممنون از اینکه جواب دادی
من پیرو جواب شما یه عکس دیگه که این بار با حرف نامگداری شده بود رو با imread و imshow نمایش دادم بدون تبدیل به رشته مثل دفعه قبل نمایش داده شد |
سلام من بازم سوال برام پیش اومده
برا پیاده سازی PCA لارمه که در مراحل اولیه میانگین هر ماتریس صورت گرفته بشه حالا سوال من اینه که این میانگین چطور گرفته میشه یعتی میاد با هر سطر ماتریس یصورت یه بردار در نظر میگیره و میانگین سطر ها رو میگیره یا ستونها ..... تو یه مقاله دیدم که بعد از فراخوانی عکس ها ...همه ماتریس های مربوط به هر عکس رو که بصورت n*n هست رو به صورت 1 در n^2 در 1 در اورده و به هر ماتریس به صورت بردار تو یه ماتریس بزرگتر که هر سطرش مربوط به یه عکس هست ذخیره شده حالا باید میانگین این ماتریس جدید محاسبه بشه یا میانگین ماتریس هر عکس سوال بعدیم اینه در مرحله بعد نحوه کم کردن میانگین از ماتریس مربوط به هر عکس به چه صورتیه یعنی هر داریه از میانگین کم میشه ؟ |
هر عکس یک ماتریس میشه
هر ماتریس (که مربوط به یک عکس است) را به صورت خطی یا ردیفی در یک ماتریس کلی قرار میدی هر ردیف از میانگین خودش کم میشه ===> ماتریس نرمال سپس ماتریس نرمال کلی را میسازی بعد از ترانهاده ماتریس اولی کوواریانس می گیری بعد هم مقادیر ویژه و بردارهای ویژه را محاسبه میکنی سپس در یک ماتریس اونهایی که مقادیر بیشتری دارند به دلخواه جدا میکنی. این ماتریس را با ترانهاده ماتریس نرمال ضرب میکنی داده های تازه حاصل میشن اینها را من امروز درباره تحلیل مولفه های اصلی یاد گرفتم. حال دارم میگردم چجوری از نتایجش استفاده کنم. اگه کسی مطلبی داره بذاره. خیلی ممنونم |
زمان محلي شما با تنظيم 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.