Я пытаюсь отобразить объект cv::Mat
(opencv) в Winform PictureBox
:
void Show(cv::Mat& picture, PictureBox^ box) {
cv::Mat pic;
cv::resize(picture, pic, cv::Size(250, 250)); //picturebox size = 250, 250
box->Image = gcnew System::Drawing::Bitmap(
pic.cols, pic.rows, pic.step,
System::Drawing::Imaging::PixelFormat::Format24bppRgb,
(System::IntPtr)pic.data
);
box->Refresh();
}
Конструктор Bitmap
выдает исключение: «Параметр недействителен».Я обнаружил похожую проблему из: C # «Параметр недействителен».создание нового растрового изображения Отвечено, что Bitmap
занимает слишком много места.Однако у меня Bitmap
только 250x250 или ~ 180 КБ памяти.Я не думаю, что 180 КБ это слишком много.
Я попытался уменьшить размер изображения до 200x200, и это работает.Но это слишком мало для моей необходимости.И это доказывает, что проблема должна быть в размере картинки.