/// <summary>
/// 读取图片,在图片上绘制矩形选框
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Button_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
if (Convert.ToBoolean(ofd.ShowDialog()))
{
//读取一张灰度图
Mat image = Cv2.ImRead(ofd.FileName, ImreadModes.Grayscale);
//创建一个空的rgb图
Mat rgbMat = new Mat();
//将灰度图转换为RGB图
Cv2.CvtColor(image,rgbMat , ColorConversionCodes.GRAY2BGR);
//绘制矩形框
Cv2.Rectangle(rgbMat, new OpenCvSharp.Rect(100, 100, 100, 100), Scalar.Red, 2);
//将Mat对象转换为WPF可以绑定的图象对象
var result= BitmapSourceConverter.ToBitmapSource(rgbMat);
MyImage.Source = result;
}
}
备注:使用OpenCVSharp的时候需要通过Nuget引用以下库
1,OpenCvSharp4
2,OpenCvSharp4.runtime.win
3,OpenCvSharp4.WpfExtensions(将Mat对象转换为WPF图片可以绑定的对象)
如果不使用CvtColor函数,如果图片是灰度图,绘制的矩形框只有黑白两种颜色,因此需要借助该函数将灰度图转换为RGB图,这样才能绘制出来彩色的矩形框
本文介绍了如何在WindowsPresentationFoundation(WPF)应用中,利用OpenCVSharp库读取图片并绘制彩色矩形框。首先通过OpenFileDialog选择图片,然后将其转换为灰度图,再通过CvtColor函数转换为RGB格式,以便于绘制出彩色的矩形框。
2万+

被折叠的 条评论
为什么被折叠?



