C#:图像的透明度

2022-09-13  本文已影响0人  大龙10

《学习OpenCV(中文版)》

作者:(美)布拉德斯基(Bradski,G.)
(美)克勒(Kaehler,A.) 著
出版社:清华大学出版社
出版时间:2009年10月

参考资料:https://www.cnblogs.com/YiXiaoZhou/p/5910730.html
https://blog.csdn.net/iawfy_/article/details/124398457
https://blog.csdn.net/CAI____NIAO/article/details/112803041

一、图像通道

调用库内函数时,用一部分对输入图像格式用要求 , 需要使用改变图像的格式的方法

二、透明度

  在RGB色彩空间三个通道的基础上,还可以加上一个A通道,也叫alpha通道,表示透明度。这种4个通道的色彩空间被称为RGBA色彩空间,PNG图像是一种典型的4通道图像。
  alpha通道的赋值范围是[0, 1],或者[0, 255],表示从透明到不透明。

三、绘制命令

四、程序

1、程序C220912:调用电脑本机图片并画图的OpenCV程序。

       private void button1_Click(object sender, EventArgs e)
        {

            Scalar s = new Scalar(255, 255, 255);//创建一个颜色对象
            Mat mm = new Mat(210, 210, MatType.CV_8UC3, s);
            Mat output_image = new Mat(); ;

            List<OpenCvSharp.Point>  pts1 = new List < OpenCvSharp.Point >
                {
                new OpenCvSharp.Point(0, 76),
                new OpenCvSharp.Point(80, 76),
                new OpenCvSharp.Point(106, 0),
                new OpenCvSharp.Point(130, 76),
                new OpenCvSharp.Point(210, 76),
                new OpenCvSharp.Point(146, 124),
                new OpenCvSharp.Point(170, 210),
                new OpenCvSharp.Point(106, 152),
                new OpenCvSharp.Point(40, 210),
                new OpenCvSharp.Point(64, 124)
                    };

            List<List<OpenCvSharp.Point>> pts = new List<List<OpenCvSharp.Point>>() { pts1 };
            //画五角星
            Cv2.Polylines(mm, pts, true, new Scalar(0, 0, 255), 2);
            Cv2.DrawContours(mm, pts,-1, new Scalar(0, 255,0),-1,LineTypes.AntiAlias); //线宽:-1时代表填充区域
            //
            OpenCvSharp.Size size = new OpenCvSharp.Size(80, 50);
            OpenCvSharp.Scalar scalar = new OpenCvSharp.Scalar(0, 100, 200);
            //绘制椭圆 参数1:操作图像 2:椭圆中心 3:以椭圆长轴和短轴长度为边界的矩形区域,椭圆就绘制在这个矩形区域 4:椭圆旋转角度 5:起始角度  6:终止角度  7:颜色 8:线宽 9:线型 10:缩放参数(0为不缩放)
            Cv2.Ellipse(mm, new OpenCvSharp.Point(0, 20), size, 180, 90, 270, scalar, -1, LineTypes.AntiAlias, 0);

            mm.ConvertTo(output_image, MatType.CV_8UC4, 0);
            Cv2.ImWrite("output image.png", output_image);//支持jpg、png格式
            pictureBox1.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(mm);

五、运行结果

上一篇下一篇

猜你喜欢

热点阅读