有关使用C# OpenCV输出图像的问题

vbopmzt1  于 2023-03-09  发布在  C#
关注(0)|答案(1)|浏览(194)

我创建了一个简单的程序,当我单击按钮时,它会将图像带到PictureBox中。请告诉我为什么在注解后的处理代码中会出现异常。

    • 代码**
OpenCV_image = Cv2.ImRead(openFile_Dialog.FileName, ImreadModes.Grayscale);

// Line which raises exception
pictureBox1.Image = BitmapConverter.ToBitmap(OpenCV_image);
    • 例外情况**

系统访问违规异常
我是第一次学习OpenCV,我用谷歌学习和复制它,但它不起作用。

wfauudbj

wfauudbj1#

试试这个:

Mat OpenCV_image = Cv2.ImRead(openFileDialog1.FileName,   ImreadModes.Grayscale);
    Bitmap newBmp = new Bitmap(OpenCV_image.Cols, OpenCV_image.Rows, (int) OpenCV_image.Cols* 2, System.Drawing.Imaging.PixelFormat.Format16bppGrayScale, OpenCV_image.Data);
    pictureBox1.Image = newBmp;

ImRead()返回一个Mat(matrix),(虽然我还没有看)我假设BitmapConverter需要其他的东西,所以你需要创建一个新的位图,并把矩阵中的数据和其他指定的信息一起给它。你可能需要调整步幅值和像素格式,让它正常工作。

相关问题