System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于opencv的一键线稿生成方法技术_技高网

一种基于opencv的一键线稿生成方法技术

技术编号:39962832 阅读:6 留言:0更新日期:2024-01-09 00:10
本发明专利技术涉及线稿生成领域,且公开了一种基于opencv的一键线稿生成方法,包括以下步骤:第一步:检测图像前,需要对图像预处理,进行增强图像对比度以及对图像二值化处理;第二步:使用opencv图像处理技术检测图像边缘,得到图像轮廓信息;第三步:根据图像轮廓信息,得到每个轮廓对应的点集;第四步:收集每个点对应的色值,以一组点集为单位,对该点集中所有点的色值进行均值化处理;第五步:遍历每个轮廓对应的点集,再遍历点集中的每个点,依次连接每个点生成路径,路径的颜色设置为上一步的均值颜色。

【技术实现步骤摘要】

本专利技术涉及线稿生成领域,具体为一种基于opencv的一键线稿生成方法


技术介绍

1、线稿生成是指将一张图片或画作转化为线稿形式,即用线条勾勒出图像的轮廓和结构。这通常需要使用特定的软件或工具来实现,例如adobe illustrator、procreate等。

2、以下是一些常见的线稿生成方法:

3、1.手动绘制:使用铅笔或绘图板,手动勾勒出图片或画作的轮廓,这种方法需要一定的绘画技巧和对图像的理解。

4、2.扫描和清理:将图片或画作扫描成电子版,然后使用图像处理软件清理掉背景,最后只剩下线条部分。

5、3.在线转换工具:有一些在线工具可以将图片或画作自动转化为线稿形式,例如autotracer、sketch2vector等。用户只需上传图片,工具就会自动生成线稿,这种方法比较快捷方便,但效果可能不如手动绘制或清理。

6、现有市面上大多数图像处理软件只能把图像简单地转换为线稿风格,而图像中的元素不具备再次绘制、擦除等二次编辑的功能。这对于很多需要进行手绘艺术创作的用户很不友好,为此我们提出了一种基于opencv的一键线稿生成方法。


技术实现思路

1、(一)解决的技术问题

2、针对现有技术的不足,本专利技术提供了一种基于opencv的一键线稿生成方法,解决将图像转成线稿风格的图像后,不能进行二次创作的问题。

3、(二)技术方案

4、为实现上述所述目的,本专利技术提供如下技术方案:一种基于opencv的一键线稿生成方法,包括以下步骤:

5、第一步:检测图像前,需要对图像预处理,进行增强图像对比度以及对图像二值化处理;

6、第二步:使用opencv图像处理技术检测图像边缘,得到图像轮廓信息;

7、第三步:根据图像轮廓信息,得到每个轮廓对应的点集;

8、第四步:收集每个点对应的色值,以一组点集为单位,对该点集中所有点的色值进行均值化处理;

9、第五步:遍历每个轮廓对应的点集,再遍历点集中的每个点,依次连接每个点生成路径,路径的颜色设置为上一步的均值颜色。

10、优选的,所述增强图像对比度包括以下内容:

11、s1:创建一个长度为256的数组histblue和bluemap,分别用于统计输入图像中蓝色通道对应的每个灰度级别的像素数量和生成调整后的灰度映射表;

12、s2:函数通过遍历输入图像的每个像素,计算蓝色通道对应的每个灰度级别的像素数量,存储在histblue数组中;

13、s3:函数设定高、低灰度级别像素的过滤比例lowthresholdrate和highthresholdrate,通过累计像素数量,找到满足过滤比例的最低和最高灰度值:iminblue和imaxblue;

14、s4:函数根据计算得到的最低和最高灰度值,生成灰度映射表bluemap,灰度映射表用于将输入图像中的灰度值映射到新的灰度值,以实现对比度的调整;

15、s5:函数通过遍历输入图像的每个通道的每个像素,将像素的灰度值根据灰度映射表bluemap进行调整,从而实现对比度的增强。

16、优选的,所述第三步中使用opencv的findcontours算法找到轮廓信息,将结果保存在contours中,一个轮廓contour是一系列连续的点,表示了图像中的连续曲线或者边界,contours是一个二维数组,是多个轮廓contour的集合。

17、优选的,所述第四步的具体内容为:

18、s1:contours为第三步中的二维数组,是多个轮廓contour的集合,每个contour是点point的集合;

19、s2:创建一个vec3bvalues一维数组,保存每个轮廓中所有点对应的色值,对于单个轮廓,遍历每个轮廓contour中所有点,将这些点添加到pointsarray数组中,找到这些点在图片中对应的色值存入vec3bvalues数组中,然后取vec3bvalues数组中所有颜色的均值averagecolor,每一个轮廓contour转化的pointsarray对应一种颜色averagecolor保存在字典中,averagecolor颜色作为字典的键key,pointsarray作为字典的值value,字典的格式为[颜色color:点集points];

20、s3:对于contours中的每个轮廓都执行一次步骤2,得到一个关于字典[颜色color:点集points]的数组objcarray。

21、优选的,所述第五步的具体内容如下:对第四步中的objcarray数组依次遍历获取每个字典,字典的格式为[颜色color:点集points],再依次遍历点集points中的所有点point,进行连接生成路径,然后对路径设置颜色。

22、(三)有益效果

23、与现有技术相比,本专利技术提供了一种基于opencv的一键线稿生成方法,具备以下有益效果:

24、1、该基于opencv的一键线稿生成方法,将图像转成线稿路径,可以在此基础上进行二次创作,帮助用户节省大量时间,专注于创作。提供了可以擦除路径,以及在原有路径上继续绘制的方案,拥有了更大的灵活性。

本文档来自技高网...

【技术保护点】

1.一种基于opencv的一键线稿生成方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于opencv的一键线稿生成方法,其特征在于:所述增强图像对比度包括以下内容:

3.根据权利要求1所述的一种基于opencv的一键线稿生成方法,其特征在于:所述第三步中使用OpenCV的findContours算法找到轮廓信息,将结果保存在contours中,一个轮廓contour是一系列连续的点,表示了图像中的连续曲线或者边界,contours是一个二维数组,是多个轮廓contour的集合。

4.根据权利要求1所述的一种基于opencv的一键线稿生成方法,其特征在于:所述第四步的具体内容为:

5.根据权利要求1所述的一种基于opencv的一键线稿生成方法,其特征在于:所述第五步的具体内容如下:对第四步中的objcArray数组依次遍历获取每个字典,字典的格式为[颜色color:点集points],再依次遍历点集points中的所有点point,进行连接生成路径,然后对路径设置颜色。

【技术特征摘要】

1.一种基于opencv的一键线稿生成方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种基于opencv的一键线稿生成方法,其特征在于:所述增强图像对比度包括以下内容:

3.根据权利要求1所述的一种基于opencv的一键线稿生成方法,其特征在于:所述第三步中使用opencv的findcontours算法找到轮廓信息,将结果保存在contours中,一个轮廓contour是一系列连续的点,表示了图像中的连续曲线或者边界,contour...

【专利技术属性】
技术研发人员:王勉康登波
申请(专利权)人:合肥栈顶信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1