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();
}
}
共有 0 条评论