出現原因:Mat轉換爲Bitmap顯示圖像的同時,向richTextBox打印數據,就會報錯。單獨使用正常。
Mat outImg = new Mat();
//中間代碼省略...
pictureBox1.Image = outImg.Bitmap;//問題出在這
for (int i = 0; i < 32; i++)
{
for (int j = 0; j < 32; j++)
{
richTextBox1.AppendText(arr[i, j].ToString() + " ");
}
richTextBox1.AppendText("\r\n");
}
richTextBox1.AppendText("\r\n");
richTextBox1.ScrollToCaret();
解決辦法:將Mat轉換爲image,再轉換爲bitmap輸出。
//將Mat轉換爲image,再轉換爲bitmap輸出。
Bitmap bmp1 = new Bitmap(512, 512, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
Image<Bgr, Byte> m = outImg.ToImage<Bgr,Byte>();
bmp1 = m.ToBitmap();
//==================修改之後的代碼===================================
Mat outImg = new Mat();
//中間代碼省略...
//--------------修改部分---------------------------
//pictureBox1.Image = outImg.Bitmap;//問題出在這
Image<Bgr, Byte> m = outImg.ToImage<Bgr,Byte>();
bmp1 = m.ToBitmap();
pictureBox1.Image = bmp1;
//------------------------------------------------
for (int i = 0; i < 32; i++)
{
for (int j = 0; j < 32; j++)
{
richTextBox1.AppendText(arr[i, j].ToString() + " ");
}
richTextBox1.AppendText("\r\n");
}
richTextBox1.AppendText("\r\n");
richTextBox1.ScrollToCaret();