C#中使用opencv

C#中使用opencv

在这里插入图片描述

安装下述三个包

在这里插入图片描述

安装:OpenCvSharp4.Extensions

在这里插入图片描述

在这里插入图片描述

// 读取图像
Mat img1 = new Mat(imgPath, ImreadModes.Color);
OpenCvSharp.Size imgSize = img1.Size();

int img1Width =  imgSize.Width;
int img1Height = imgSize.Height;
// 读取标签
string name = Path.GetFileName(imgPath).Split('.')[0];

string dirName = Path.GetDirectoryName(imgPath);
DirectoryInfo path001 = new DirectoryInfo(dirName); // 用于识别train还是val
DirectoryInfo path111 = Directory.GetParent(textBox1.Text.Trim());
DirectoryInfo path112 = Directory.GetParent(path111.FullName);

string labelPath = Path.Combine(Path.Combine(path112.FullName,"labels", path001.Name), name + ".txt");

// 重要赋值(***)
Current_LabelPath = labelPath;

// 显示label路径
label2.Text = labelPath;
/*
 *
 * 核心:将标签框显示到图像进行显示
 *
 */
try
{

    // 创建一个 StreamReader 的实例来读取文件 
    // using 语句也能关闭 StreamReader
    using (StreamReader sr = new StreamReader(labelPath))
    {
        string line;

        // 从文件读取并显示行,直到文件的末尾 
        while ((line = sr.ReadLine()) != null)
        {
            Console.WriteLine(line);
            string[] res1 = line.Split(' ');

            double center_x = img1Width * Convert.ToDouble(res1[1]);
            int centerX = Convert.ToInt32(center_x);

            //int leftUp1 = Convert.ToInt32(); 
            double center_y = img1Height * Convert.ToDouble(res1[2]);
            int centerY = Convert.ToInt32(center_y);

            double wd = img1Height * Convert.ToDouble(res1[3]);
            int Width = Convert.ToInt32(wd);

            double hg = img1Height * Convert.ToDouble(res1[4]);
            int Height = Convert.ToInt32(hg);


            OpenCvSharp.Point truck_a = new OpenCvSharp.Point(centerX - Width/2, centerY-Height/2);
            OpenCvSharp.Point truck_b = new OpenCvSharp.Point(centerX + Width/2, centerY + Height/2);
            Cv2.Rectangle(img1, truck_a, truck_b, Scalar.Red, 15);
        }

        //Cv2.ImWrite(@"show.jpg", img1);
        //把Mat格式的图片转换成Bitmap
        Bitmap bitmap = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(img1);
        //运行上面的代码需要安装新的库OpenCvSharp4.Extensions

        //显示图片
        pictureBox1.Image = bitmap;




  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值