خواندن و ذخیره سازی تصویر در OpenCV - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

وبـــلاگ هــفت خــط کــد


آموزش های برنامه نویسی
۴۷ نفر آنلاین
۱ عضو و ۴۶ مهمان در سایت حاضرند

خواندن و ذخیره سازی تصویر در OpenCV

+3 امتیاز
173 بازدید

سلام به بر بچ.

آقا تازه شروع کردم به کار با OpenCV .با این پست بالاخره بعد دو روز تونستم Opencv را نصب کنم خدا بخیر کنه.حالا میخوام تصویر را load کنم یه کمی تغییر بدم دوباره رو قبلی ذخیره کنم چطوریه قضیش ؟

سوال شده فروردین 10, 1393  بوسیله ی toopak (امتیاز 375)   3 8 51

1 پاسخ

+5 امتیاز
 
بهترین پاسخ

اول از همه پیشنهاد می کنم این پست را مطالعه کنید.

برای لود کردن تصویر از روی فایل به حافظه بایستی از تابع imread استفاده کنید این دارای 2 پارامتر است.

Mat imread(const string& filename, int flags=1 )
  • پارامتر اول نام فایل مورد نظر هستش.
  • پارامتر دوم فلگی جهت کنترل کردن نوع تصویر بارگذاری شده می باشد که می تواند دارای مقادیر زیر باشد:

CV_LOAD_IMAGE_ANYDEPTH  : از این حالت زمانی استفاده می شود که مایل باشیم عمق تصویر را دستکاری نکنیم مقدار عددی آن برابر با منفی یک می باشد.

CV_LOAD_IMAGE_COLOR  : از این حالت زمانی استفاده می گردد که قصد داشته باشیم تصویر بارگذاری شده رنگی باشد.(3 کانال با عمق 8) مقدار عددی آن معادل یک می باشد.

CV_LOAD_IMAGE_GRAYSCALE  : از این حالت زمانی استفاده می گردد که قصد داشته باشیم تصویر بازگذاری شده گری باشد.(1 کانال با عمق 8) مقدار عددی آن معاد صفر می باشد.

این تابع پس از بارگذاری موفق تصویر را در Mat بر می گرداند در صورت اشتباه بودن نام فایل یا فرمت غیر مجاز یا هر نوع اشکالی در بارگذاری Mat::data ==NULL می باشد.

مجموعه فرمت هایی که پشتیبانی می شود به شرح زیر است.

  • Windows bitmaps - *.bmp, *.dib
  • JPEG files - *.jpeg, *.jpg, *.jpe
  • JPEG 2000 files - *.jp2
  • Portable Network Graphics - *.png
  • Portable image format - *.pbm, *.pgm, *.ppm
  • Sun rasters - *.sr, *.ras
  • TIFF files - *.tiff, *.tif

در مورد انواع فرمت های تصویر می توانید این پست را مطالعه کنید.

یکسری نکات در مورد این تابع وجود داره :

  • فرمت فایل از روی محتوای فایل تعیین میشه نه پسوند فایل.
  • در مورد تصاویر رنگی به صورت آبی سبز قرمز بارگذاری می شود.

 

جهت ذخیره سازی تصویر می توانید از تابع imwrite استفاده نماید.

bool imwrite(const string& filename, InputArray img, const vector<int>& params=vector<int>() )

پارامتر اول نام فایل جهت ذخیره سازی را مشخص می نماید.

پارامتر دوم متغیر Mat ی که باید ذخیره شود را مشخص می نماید.

 

 

پاسخ داده شده فروردین 12, 1393 بوسیله ی مصطفی ساتکی (امتیاز 16,378)   16 24 66
...