OpenCVsharp获取图标鼠标位置RGB值

发布于:2023-01-17 ⋅ 阅读:(390) ⋅ 点赞:(0)

using System;
using OpenCvSharp;

namespace Test_01
{
    class Program
    {
        static void Main(string[] args)
        {
            Point ptMouse = new Point(1, 1);
            string b = "0";
            string g = "0";
            string r = "0";
            string filePath = @"路径";
            Cv2.NamedWindow("frame");
            Cv2.SetMouseCallback("frame", new MouseCallback(On_MouseHandle));
            while (true)
            {
                Mat frame = new Mat(filePath);
                b = frame.At<Vec3b>(ptMouse.X, ptMouse.Y)[0].ToString();
                g = frame.At<Vec3b>(ptMouse.X, ptMouse.Y)[1].ToString();
                r = frame.At<Vec3b>(ptMouse.X, ptMouse.Y)[2].ToString();
                Cv2.PutText(frame, GetPos(), new Point(ptMouse.X, ptMouse.Y - 30), HersheyFonts.HersheySimplex, 1, new Scalar(255, 255, 0));
                Cv2.PutText(frame, GetText(), ptMouse, HersheyFonts.HersheySimplex, 1, new Scalar(255, 255, 0));
                Cv2.ImShow("frame", frame);
                GC.Collect();
                Cv2.WaitKey(20);
            }
            void On_MouseHandle(MouseEventTypes @event, int x, int y, MouseEventFlags flags, IntPtr userData)
            {
                //鼠标移动消息
                if (@event == MouseEventTypes.MouseMove)
                {
                    ptMouse.X = x;
                    ptMouse.Y = y;
                }
            }
            string GetText()
            {
                return "R:" + r + "G:" + g + "B:" + b;
            }
            string GetPos()
            {
                return "X:" + ptMouse.X + "Y:" + ptMouse.Y;
            }
        }
    }
}
 


网站公告

今日签到

点亮在社区的每一天
去签到