با سلام خدمت دوستان.
میخواستم بدونم چطور میتونم یک تصویر باینری رو در متلب تعریف کنم
با تشکر
با سلام خدمت دوستان.
میخواستم بدونم چطور میتونم یک تصویر باینری رو در متلب تعریف کنم
با تشکر
سلام
باید کتاب های مربوط به پردازش تصویر رو در متلب بخونید.
توی کتاب های نسخه انگلیسی درمورد همه چیز توضیح داده،ولی زبان کتاب انگلیسی هستش
عجب جواب دندانشکنی
برای تبدیل بایت های موجود در ماتریس به تصویر:
bw = repmat(uint8(0),[m n]); % Create an m by n array of 0's
a = image(bw);
بعدش میتونی تصویر رو ذخیره کنی با دستورات زیر
http://matlab.izmiran.ru/help/techdoc/ref/imwrite.html
مثال
imwrite(a,filename,'bmp');
سلام به همگی
ببخشید من میخواستم یک ماتریس رو به صورت تصویر در متلب نمایش بدم
ولی به صورتی که مثلا اگر مقدار یک پیکسل 1 باشد ان را به رنگ قرمز نشان دهد و اگر 2 بود به رنگ سبز!
میشه راهنماییم کنید که چطور اینکار رو بکنم؟؟؟
با سلام
به دو صورت می توانید طرح مورد نظر را نمایش دهید:
1- با استفاده از توابع تغییر رنگ پیکسل ها رنگ نقاط مورد نظر بر روی فرم برنامه را با استفاده از دو حلقه تو در تو که مقدار شمارش آنها بستگی به اندازه ماتریس دارد تغییر دهید که البته من فقط در مورد ویژوال بیسیک 6 با توابع مورد نظر آشنایی دارم و در مورد متلب نمیدانم.
2- اقدام به ساخت یک تصویر BMP با ابعاد متناسب با اندازه ماتریس مورد نظر و یا بیشتر از آن کنید و سپس آن را نمایش دهید که این روش با وجود سخت بودن کارایی بیشتری نسبت به روش قبل دارد که برای ساخت یک تصویر BMP باید با استفاده از توابع مربوط به باز کردن فایل به صورت باینری در متلب (که البته من به هیچ وجه با متلب آشنایی ندارم) شروع به پر کردن بایت های اول تا شماره 54 آن کنید که این مقادیر اطلاعات به نوعی همان هدر فایل های BMP و شناسنامه این نوع از فایل ها و تقریبا برای فایل های BMP ثابت هستند و فقط چند مورد از مقادیر مانند مقادیر طول و عرض و ... ممکن است که با توجه به اندازه ماتریس تغییر کنند که البته برای آشنایی با ساختار فایل های BMP می توانید در اینترنت جستجو کنید.
بعد از پر شدن این مقادیر و از شماره 55 به بعد مولفه های سه رنگ آبی و سبز و قرمز به ترتیب و با گستره مقادیر 0 تا خود 255 و به صورت متناوب برای هر بایت تعریف می شوند که هر سه بایت رنگ یک پیکسل از عکس را تعریف می کند و البته این جایگذاری هم باید از پایین و سمت چپ ماتریس شروع شده و به ترتیب بعد از خواندن اطلاعات خانه های ماتریس از چپ به راست و اتمام آن به سطر بالاتر رفته تا به همین ترتیب به پایان برسد و سپس فایل باز شده را بسته و نمایش دهید.
البته چون برای ساخت یک فایل تصویری نکات کلیدی زیادی وجود دارد به نظر من اگر از توابع تغییر رنگ پیکسل های فرم استفاده کنید بسیار راحت تر است که به عنوان مثال این گونه از توابع در ویژوال بیسیک 6 به صورت زیر است:
PSet (x, y), RGB(255, 255, 255)
که x و y مختصات افقی و عمودی بر روی فرم برای پیکسلی که باید رنگ شوند می باشد و سه عدد 255 هم مولفه های رنگی قرمز و سبز و آبی رنگ آن پیکسل هستند که می توانند اعدادی بین 0 تا خود 255 را داشته باشند و با تغییر این مقادیر می توان رنگ های گوناگون را برای پیکسل مورد نظر تعریف کرد البته نوع دیگری از سیستم های تعیین رنگ پیکسل وجود دارد که تعداد رنگ های تولید شده در آنها بسیار محدود و اگر اشتباه نکنم تقریبا 15 رنگ بیشتر نیست که این توابع کمی با توابع ذکر شده متفاوت است و البته این قضیه را مطرح کردم چون در صورتی که توابع متناظر با تابع رنگ های RGB را در متلب پیدا نکردید می توانید به دنبال توابع دیگری که برای تغییر رنگ پیکسل با تعداد رنگ های کمتر است بگردید که این نوع از توابع از ابتدایی ترین سیستم های رنگ آمیزی استفاده می کند و تقریبا در هر زبان برنامه نویسی وجود دارد و البته رنگ های قرمز و سبز که می خواهید جانشین اعداد 1 و 2 شود هم در اینگونه از توابع ابتدایی رنگ آمیزی پیکسل هم وجود دارند.
با آرزوی موفقیت برای شما