掌桥专利:专业的专利平台
掌桥专利
首页

一种屏幕颜色识别系统的识别方法

文献发布时间:2023-06-19 09:29:07


一种屏幕颜色识别系统的识别方法

技术领域

本发明涉及一种屏幕颜色识别系统的识别方法。

背景技术

在日常生活中,色盲人群虽然只会占据总人数的很小一部分,但是该部分人群在日常使用电脑、电视、手机甚至一些普遍的电子类产品的时候,往往无法分辨所浏览的主体的正确颜色,这往往会导致不便利的情况发生,比如,需要红绿色盲用户点击红色按钮时,用户往往无法直接辨认哪个按钮为红色。

发明内容

为解决上述技术问题,本发明提供了一种屏幕颜色识别系统的识别方法。

本发明通过以下技术方案得以实现。

本发明提供的一种屏幕颜色识别系统的识别方法,其步骤为:

1)系统启动;

2)对电子产品屏幕进行实时取帧;

3)对屏幕主体物体的颜色进行识别并将颜色进行文字标注。

所述步骤2)中取帧采用OpenCV软件库,并对屏幕帧进行边缘提取,并对提取后的边缘进行锐化、光滑处理。。

所述步骤3)中颜色的识别步骤为:

3.1)通过OpenCV软件库物体特征库进行搜索比对识别出主体的轮廓;若软件库中无法识别出物体,则将屏幕帧中封闭边缘图像作为主体物;

3.2)获取主体物的每个像素RGB值,对RGB值相似的区域作为颜色一致或者相似处理;

3.3)在识别出颜色的区域使用文字标记出该颜色。

所述RGB值和颜色的对应关系为ASCII对照表。

所述OpenCV的主体轮廓提取识别步骤为:

3.1.1)在OpenCV库中调用findContours()函数查找轮廓;

3.1.2)调用drawContours()画轮廓并进行轮廓填充;

3.1.3)计算轮廓的面积和周长;

3.1.4)提取轮廓凸包,矩形,最小外接矩形,外接圆;

3.1.5)将获取到的轮廓与数据库中的图片进行对比,若对比的两者相似度达到设置的阈值则认为主体提取成功。

图片相似度值对比方法为:

3.1.5.1)使用python函数Image.open(path)分别读取对比库中的图像和需要对比的图像。

3.1.5.2)计算两幅图片的均方差MSE:

def mse(imageA,imageB):

err=np.sum((imageA.astype("float")-imageB.astype("float"))**2)

err/=float(imageA.shape[0]*imageA.shape[1])

return err

使用compare_ssim函数计算两幅图片的SSIM值:

from skimage.measure import compare_ssim as ssim

3.1.5.3)计算出的MSE值越小,则两图像越相似,或SSIM在[-1,1]之间,则代表两图像相似。

所述阀值为MSE<1或1>SSIM>-1。

本发明的有益效果在于:可以给色盲用户提供电子产品屏幕上显示的物体的颜色辨别,以文字形式标记出屏幕主体或者用户感兴趣的屏幕区域的颜色,帮助色盲用户有效地辨别电子产品上显示的颜色,让色盲用户更好地生活学习,避免了因为颜色无法确认导致的各种不便和问题。

附图说明

图1是本发明的系统识别流程图;

图2是本发明的电子屏幕显示图;

图3是本发明的提取的图2的轮廓图;

图4是本发明的提取的主体图片。

具体实施方式

下面进一步描述本发明的技术方案,但要求保护的范围并不局限于所述。

一种屏幕颜色识别系统的识别方法,其步骤为:

1)系统启动;

2)对电子产品屏幕进行实时取帧;

3)对屏幕主体物体的颜色进行识别并将颜色进行文字标注。

所述步骤2)中取帧采用OpenCV软件库,并对屏幕帧进行边缘提取,并对提取后的边缘进行锐化、光滑处理。。

所述步骤3)中颜色的识别步骤为:

3.1)通过OpenCV软件库物体特征库进行搜索比对识别出主体的轮廓;若软件库中无法识别出物体,则将屏幕帧中封闭边缘图像作为主体物;

3.2)获取主体物的每个像素RGB值,对RGB值相似的区域作为颜色一致或者相似处理;

3.3)在识别出颜色的区域使用文字标记出该颜色。

所述RGB值和颜色的对应关系为ASCII对照表,不同的RGB值对应何种颜色,在系统设计初始需要定义,如红色对应RGB值为(256,0,0),则可定义类红色区域为(256±x,0±x,0±x),x为微调偏移量。

如图2~4所示,所述OpenCV的主体轮廓提取识别步骤为:

3.1.1)在OpenCV库中调用findContours()函数查找轮廓;

3.1.2)调用drawContours()画轮廓并进行轮廓填充;

3.1.3)计算轮廓的面积和周长;

3.1.4)提取轮廓凸包,矩形,最小外接矩形,外接圆;

3.1.5)将获取到的轮廓与数据库中的图片进行对比,若对比的两者相似度达到设置的阈值则认为主体提取成功。

图片相似度值对比方法为:

3.1.5.1)使用python函数Image.open(path)分别读取对比库中的图像和需要对比的图像。

3.1.5.2)计算两幅图片的均方差MSE:

def mse(imageA,imageB):

err=np.sum((imageA.astype("float")-imageB.astype("float"))**2)

err/=float(imageA.shape[0]*imageA.shape[1])

return err

使用compare_ssim函数计算两幅图片的SSIM值:

from skimage.measure import compare_ssim as ssim

3.1.5.3)计算出的MSE值越小,则两图像越相似,或SSIM在[-1,1]之间,则代表两图像相似。

相关技术
  • 一种屏幕颜色识别系统的识别方法
  • 车体颜色识别系统和车辆以及车体颜色识别方法
技术分类

06120112188541