class Program { static void Main(String[] args) { Mat img = new Mat(600, 400, DepthType.Cv8U, 3); img.SetTo(new Bgr(0, 0, 0).MCvScalar); //繪製一條黃色,線寬爲4 的反鋸齒線段 CvInvoke.Line(img, new Point(10, 10), new Point(100, 250), new MCvScalar(0, 255, 255),4,LineType.AntiAlias); //繪製圓心爲200,100,半徑爲50,線寬爲15的紅色空心圓 CvInvoke.Circle(img, new Point(200, 100), 50, new MCvScalar(0, 0, 255), 15, LineType.AntiAlias); //繪製左上角200,300寬高爲150,100的綠色矩形框 CvInvoke.Rectangle(img, new Rectangle(200, 300, 150, 100), new MCvScalar(0, 255, 0), 1); //繪製中心爲200,200,大小爲150,120,旋轉40度,顏色爲cyan的橢圓 CvInvoke.Ellipse(img, new RotatedRect(new Point(200, 200), new Size(150, 120), 40), new MCvScalar(255, 255, 0), 3); //繪製文字 CvInvoke.PutText(img, "CTC", new Point(100, 100), FontFace.HersheyComplex, 3, new MCvScalar(0, 255, 255), 2); CvInvoke.Imshow("draw", img); CvInvoke.WaitKey(0); } }
效果spa
效果以下,使用鼠標中鍵拖拉矩形框。3d
中間黑色的控件是ImageBox,沒有縮放code
Point pt = new Point(); Mat frame = null; public Form1() { InitializeComponent(); frame=new Mat(imageBox1.Height,imageBox1.Width, DepthType.Cv8U, 3); frame.SetTo(new Bgr(0, 0, 0).MCvScalar); CvInvoke.Line(frame, new Point(10, 10), new Point(100, 250), new MCvScalar(0, 255, 255), 4, LineType.AntiAlias); Application.Idle += Run; } private void Run(object sender,EventArgs e) { imageBox1.Image = frame; } private void imageBox1_MouseDown(object sender, MouseEventArgs e) { pt.X = e.X; pt.Y = e.Y; } private void imageBox1_MouseUp(object sender, MouseEventArgs e) { CvInvoke.Rectangle(frame, new Rectangle(pt.X, pt.Y, e.X-pt.X, e.Y-pt.Y), new MCvScalar(0, 255, 0), 1); } }
public partial class Form1 : Form { Mat src = null; Mat dst = new Mat(); string path=@"C:\Users\dell\Pictures\mach.jpg"; public Form1() { InitializeComponent(); src = CvInvoke.Imread(path); imageBox1.Image = src; } private void trackBar1_ValueChanged(object sender, EventArgs e) { int value = trackBar1.Value; CvInvoke.Threshold(src, dst, value, 255, ThresholdType.Binary); imageBox1.Image = dst; } }