نمايش پست تنها
قديمي ۰۴-۲۸-۱۳۹۲, ۰۶:۱۷ بعد از ظهر   #1 (لینک دائم)
N-5 Female
عضو جدید
 
آواتار N-5
 
تاريخ عضويت: فروردين ۱۳۹۲
پست ها: 5
تشكرها: 0
0 تشكر در 0 پست
پيش فرض نمایش تصویر خاکستری در pictureBox

سلام
برای برنامه ای نیاز دارم تصویر رنگی که توسط کد زیر به تصویر خاکستری تبدیل کردم را در VC++ 2010 در pictureBox نمایش بدهم:
كد:
Mat src_gray;
cvtColor( src, src_gray, CV_BGR2GRAY );
کدی که برای نمایش در pictureBox استفاده می کنم به صورت زیر است:
كد:
System::Drawing::Graphics^ graphics = pictureBox1->CreateGraphics();
System::IntPtr ptr(src.ptr());
System::Drawing::Bitmap^ b  = gcnew System::Drawing::Bitmap(src.cols,src.rows,src.step,System::Drawing::Imaging::PixelFormat::Format24bppRgb,ptr);
System::Drawing::RectangleF rect(0,0,control->Width,control->Height);
graphics->DrawImage(b,rect);
این کد تصویر رنگی را بدون مشکل نمایش می دهد ولی وقتی تصویر خاکستری به آن می دهم، تصویر را سه بار کنار هم تکرار می کند.

اگر کد را به صورت زیر تغییر دهم، تصویر یک بار نمایش داده می شود ولی با رنگهای نادرست:
كد:
System::Drawing::Bitmap^ b  = gcnew System::Drawing::Bitmap(grayImage.cols,grayImage.rows,grayImage.step,System::Drawing::Imaging::PixelFormat::Format8bppIndexed,ptr);
ممنون می شم اگه راهنمایی کنید که چه تغییری در کد باید ایجاد کنم تا تصویر خاکستری به صورت صحیح نمایش داده بشه
N-5 آفلاين است   پاسخ با نقل قول

  #ADS
نشان دهنده تبلیغات
تبليغگر
 
 
 
تاريخ عضويت: -
محل سكونت: -
سن: 2010
پست ها: -
 

نشان دهنده تبلیغات is online