【发布时间】:2015-05-27 13:08:54
【问题描述】:
我正在 Visual Studio 2010 中制作一个 Windows 窗体应用程序。
我接受了button 和picture box。
我正在从内存中读取一张图片,我希望这张图片直接显示在图片框中,而不是保存在内存中。
以下代码是保存图像,然后将其加载到图片框中。 如何改进此代码以完成所需的任务。
#pragma endregion private: System::Void btn1_Click(System::Object^ sender, System::EventArgs^ e) {
>
> Mat im = imread("C:/Users/Ravi Sharma/Desktop/Koala.jpg");
> if (im.empty())
> {
> cout << "Cannot load image!" << endl;
> exit;
> }
>
> imwrite("C:/Users/Ravi Sharma/Desktop/Koalanew.jpg",im);
> imshow("Image", im);
> picturebox->Image=Image::FromFile("C:/Users/Ravi Sharma/Desktop/Koalanew.jpg");
> }
经过一些改进 我的新代码是
> System::Void btn1_Click(System::Object^ sender, System::EventArgs^ e)
> {
> cv::Mat cvImage = cv::imread("C:/Users/Ravi Sharma/Desktop/Koala.jpg");
>
> if (cvImage.empty())
> {
> cout << "Cannot load image!" << endl;
> exit;
> }
>
> Bitmap^ bmImage = gcnew Bitmap(cvImage.cols, cvImage.rows, 3 * cvImage.cols, PixelFormat.Format24bppRgb, IntPtr(cvImage.data));
> Image^ image = static_cast<Bitmap^>(bmImage);
> picturebox->Image=Image.bmImage;
> }
【问题讨论】:
标签: c++ visual-studio-2010 user-interface opencv picturebox