OpenCVSharp 笔记5 轨迹栏及图像颜色修改

这段代码展示了如何使用OpenCV创建一个简单的图形界面,通过拖动RGB和切换轨道栏来改变图片的颜色。用户可以实时预览颜色变化,实现对图片的黑白显示或自定义颜色填充。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码如下:

          static void Main(string[] args)//
        {
            Mat src = new Mat();
            int value = 0;
            Size size = new Size(500,500);

            //src = new Mat(size, MatType.CV_8UC3);
            src = Mat.Zeros(size,MatType.CV_8UC3);
            Cv2.NamedWindow("image");
            Cv2.CreateTrackbar("R", "image", ref value, 255);
            Cv2.CreateTrackbar("G", "image", ref value, 255);
            Cv2.CreateTrackbar("B", "image", ref value, 255);
            Cv2.CreateTrackbar("swith", "image", ref value, 1);

            int key, r, g, b, s;
            while (true)
            {
                Cv2.ImShow("image", src);
                key = Cv2.WaitKey(1);
                if (key == 27) break;//27即为Esc键

                System.Threading.Thread.Sleep(1);
                r = Cv2.GetTrackbarPos("R", "image");
                g = Cv2.GetTrackbarPos("G", "image");
                b = Cv2.GetTrackbarPos("B", "image");
                s = Cv2.GetTrackbarPos("swith", "image");

                Vec3b vec3B;
                if (s == 0)
                {
                    vec3B = new Vec3b(0, 0, 0);
                    for (int Rows = 0; Rows < src.Rows; Rows++)
                    {
                        for (int Cols = 0; Cols < src.Cols; Cols++)
                        {
                            src.Set<Vec3b>(Rows, Cols, vec3B);
                        }
                    }
                }
                else
                {
                    vec3B = new Vec3b((byte)b, (byte)g, (byte)r);
                    for (int Rows = 0; Rows < src.Rows; Rows++)
                    {
                        for (int Cols = 0; Cols < src.Cols; Cols++)
                        {
                            src.Set<Vec3b>(Rows, Cols, vec3B);
                        }
                    }
                }
            }
            Cv2.WaitKey();
        }

效果如下:
拖动三个轨迹栏,图片会显示出相应的颜色
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值