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;
}
}
}
}