C#:Opencv自带颜色表操作

《学习OpenCV(中文版)》

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

参考资料:https://blog.csdn.net/hy_z_/article/details/103681088
https://blog.csdn.net/CAI____NIAO/article/details/120734191

一、Cv2.ImRead报错

  • 错误提示: !_src.empty() in function 'cv::cvtColor'
    在运行时报错,根据显示,应该是没有对cvtColor传入源图像。
    检查顺序:
    1、文件路径正确
    2、是绝对路径
    3、文件名中有中文
  • 最后是因为文件名或者文件路径中有中文,将处理后文件进行保存后发现英文文件名的图像正常,而中文错误。

二、Opencv自带颜色表操作

namespace CvSharpDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            ColormapTypes[] color_map = new ColormapTypes[Enum.GetValues(typeof(ColormapTypes)).Length];

            int index = 0;
            foreach (ColormapTypes temp in Enum.GetValues(typeof(ColormapTypes)))
            {
                color_map[index] = temp;
                index++;
            }
            index = 0;
            Mat src = Cv2.ImRead(@"e:/opencv/bgra.png", ImreadModes.AnyColor);
            Cv2.ImShow("src image", src);
            int key;
            Cv2.NamedWindow("output image", WindowFlags.AutoSize);
            Mat output_image = new Mat(src.Size(), src.Type());
            while (true)
            {
                key = Cv2.WaitKey(500);
                if (key == 27) break;//跳出while循环
                Cv2.ApplyColorMap(src, output_image, color_map[index % color_map.Length]);
                index++;
                if (index >= color_map.Length) index = 0;
                Cv2.ImShow("outputimage", output_image);

            }
            Cv2.DestroyAllWindows();
        }
}

三、运行结果

版权声明:
作者:主机优惠
链接:https://www.techfm.club/p/42915.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>