颜色识别器在线,如何用LabVIEW做颜色识别

大家好,感谢邀请,今天来为大家分享一下颜色识别器在线的问题,以及和如何用LabVIEW做颜色识别的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!本文目录不懂色彩搭配怎么办尿是红茶色是什么情况狗狗是否可以分辨颜色为什么色盲能知道颜色吗如何用LabVIEW做颜色识别不懂色彩搭配怎么办不懂色彩搭配,溜溜姐为你整理小白必备的搭配口

大家好,感谢邀请,今天来为大家分享一下颜色识别器在线的问题,以及和如何用LabVIEW做颜色识别的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

本文目录

  1. 不懂色彩搭配怎么办
  2. 尿是红茶色是什么情况
  3. 狗狗是否可以分辨颜色为什么
  4. 色盲能知道颜色吗
  5. 如何用LabVIEW做颜色识别

不懂色彩搭配怎么办

不懂色彩搭配,溜溜姐为你整理小白必备的搭配口决,只要认真熟悉,相信你也能成为时尚达人,当然学习是需要一个过程的,只有不断实践操练,那也可以做到顺手。

黑白灰是无彩色可以和任何颜色搭配,咖啡,藏蓝,裸色等属于基础色,搭配各种艳色也是不容易出错的。

总有很多女性总是只能看到自己的缺点,而忽略了自身的优点,没有完美的体型,哪怕是明星很多的体型也不是标准,通过学会扬长避短穿法则,你也可以驾驭各种款式。

皮肤颜色深搭配法则是,深多浅少,皮肤颜色浅的搭配原则是,浅多深少。

时尚十宗罪,哪些是不能穿的,一定要避免,发扬自己的优点,规避自己的缺点,一定要放在第一位。

性格就是情绪,情绪就是颜色,穿颜色一定要均衡,每种颜色都有它的色彩能量,穿不同的颜色能够表达不一样的性格。

穿衣显瘦,脱衣有肉说的就是一定要学会通过不同面料,颜色,图案来显瘦,不一定是黑色有这个作用,图案尽量选择条纹,而细条纹显瘦效果会更好

偏黄的颜色是暖色,适合的配饰是金色,偏蓝的颜色是冷色,适合的配饰是银色,你有学到吗?

分享就到这里,喜欢的点击关注溜溜姐,深耕搭配行业11年,一个有问必答的服装搭配师,

尿是红茶色是什么情况

这种就是血尿。血尿从本质上来说,就是尿液中红细胞异常增多。

血尿分酸性尿和碱性尿。尿液偏于碱性,血尿的颜色往往是偏鲜红的;题目的情况,则属于酸性血尿,即红茶色、咖啡色、棕红色,虽然对颜色形容不同,但都是一样的性质。

题目上,没有说伴见症状,这里就列举一下。

无痛性血尿,一般是泌尿系肿瘤的典型特征之一,以膀胱肿瘤最为多见。此外,肾脏的结核、肾结石、前列腺增生、多囊肾,也可以出现类似的无痛血尿。

如果血尿的同时伴有肾绞痛,这种症状往往见于肾结石或输尿管结石。

如果血尿伴随有尿频、尿急和尿痛,常常多见于泌尿系的下尿路病变。

血尿同时伴有下尿路的梗阻症状,多见于前列腺和膀胱的疾病。

此外,也有原因不明的血尿以及比如剧烈运动后的生理性血尿。但如果是40岁以上人群出现血尿,建议谨慎对待,最好去医院查一查。尤其是40岁以上无痛性血尿患者,多见泌尿系肿瘤,是该有相当的警惕的。

以上也说了,题目这种情况,属于酸性血尿。除了饮食因素以外,也可能因服用某些药物、或患者本身已有心梗(包括前驱状态)疾病之患,又或大量饮酒,以及胰岛素抵抗等代谢紊乱的情况。

当排尿开始为血尿,而后段尿液正常,一般多为尿道疾病;如排尿开始正常,快结束时出现血尿,多为膀胱炎和前列腺病;如果为全程血尿,尤其是题目所描述这种红茶色血尿,如果还无痛的话,一般多为肾脏病变。

血尿以排尿全程者为多,也有仅出现在排尿初始时或终末时。血尿往往是无痛性、间歇性的,能自行减轻或停止,极易造成疾病已痊愈的错觉。

由于题目描述的情况太简单,无法准确审证。所以,还是建议患者去医院查一查,40岁以上的人,出现酸性血尿不可忽视。

狗狗是否可以分辨颜色为什么

狗??是可以分颜色的,只是不象人能分那多,它只对橙色及蓝色系敏感,其他颜色反应就会差些,多数处于黑白状态。

色盲能知道颜色吗

谢邀√我们来看一下色盲眼中的世界,这个问题就好解决了。

色盲分为三类,第一类是红色色盲(无法辨识红色),第二类是绿色色盲(无法辨识绿色),第三类是蓝黄色盲(难以辨认蓝色和黄色)。正是色盲,让他们的眼睛自带滤镜效果,对世界有特别的感知角度。借他们的眼睛,来看看不一样的生活吧。

他们得以欣赏到不一样的梵高。

这幅创作于1889年的《麦田与收割者》,在红绿色盲眼中有着金黄的太阳和金黄的麦田,更符合丰收的定义。蓝黄色盲简直都要吓坏了,紫红色的太阳?他们绝对不会在吃饭前拍食物。

翠绿的青菜,在红绿色盲眼里就跟梅干菜一样不新鲜。至于皮蛋瘦肉粥,上面放着的碎油条简直没法忍。看演唱会时,对于荧光棒的选择非常随意。

支持偶像更重要。尽管他们全程挥着绿色的荧光棒而引起少少侧目,也开开心心地继续尖叫。目测不会喜欢北京的红墙黄瓦。

无论是在红绿色盲还是蓝黄色盲的眼里,红墙黄瓦都无法辨认,所以根本毫无存在感嘛。不过,国贸夜景还是很美的。

在蓝黄色盲眼里,荧光粉如影随形,国贸显得吊诡又绮丽。

广州的“小蛮腰”也不错!

即使红绿色盲无法正确辨识灯光颜色,但不妨碍“小蛮腰”的迷人。

晴朗的上海,是无差别的美。

色盲患者自带的滤镜,让上海的蓝天更蓝、更高远。自带高级滤镜,也不全是坏处对不对?

但这一切,在雾霾面前都白搭……

雾霾面前,人人平等:大家眼里都是一样的高级灰。

如何用LabVIEW做颜色识别

C#调用NI的库函数实现颜色识别检测(在halcon环境下)

一直使用C#+halcon进行视觉算法的开发,但是遇到了一个非常普遍的需求,对物体进行颜色识别。在halcon中颜色识别主要分两种方式,一种为进行色域转化,由RGB转换为HSV后根据颜色表在H或者其他通道中对不同的颜色值进行区分,此种方式缺点是在进行建模时必须知道目标ROI的H通道值,且与其他ROI的值差别较大,不然非常容易误报。另一种方法即建立分类器,使用mlp或者gmm进行训练,然后将要识别的区域给分类器让其判断,这其中有一个缺点为,在建立分类器时必须知道当前有几种颜色,然后建立起对应输出的分类器,并且再有样本添加进入时也必须按同时将这几种颜色都加入进去(即使当前状态只有一种颜色出现差异需要再训练),同时,也不能再追加一种新的颜色。

在LabView的Vision模块中,有直接的颜色匹配模式,即将选定的ROI区域划分为16个向量再与检测的ROI作比较,识别较为准确。故本文介绍在C#环境下调用LV中的颜色识别函数,显示窗口依然使用halcon的HWindowControl(毕竟主要的开发算法还是在halcon下写的,并且个人感觉LV的图像显示窗口做的并不好,杂乱!)。

首先,调用LV需要先安装labview并且安装visionassistan模块,安装好后在其安装路径下有两个dll,分别为NationlInstryments.Vision.dll和NationlInstryments.Vision.Common.dll,同时引用halcondonet.dll(halcon的dll),找不到在哪的可以使用软件everything进行搜索。在自己的工程中引用这两个dll,同时引用namespace,添加halcon图像显示窗口,使用该文章中https://blog.csdn.net/qizijuesha/article/details/77400312的封装后的显示窗口:

usingNationalInstrumens.Vision

usingNationInstruments.Vision.Analysis;

usingHalconDotNet;

下面上代码:

privateVisionImagemyVisionImage=newVisionImage();//VisionImage作为LV库函数中的图像输入

//从本地读取图像

privatevoidbuttonReadImage_Click(objectsender,EventArgse)

{

ImagePreviewFileDialogimageDialog=newImagePreviewFileDialog();

imageDialog.InitialDirectory=”D:\\”;

imageDialog.Filter=”AllFiles(*.*)”;

if(imageDialog.ShowDialog()==DialogResult.OK)

{

stringimagePath=imageDialog.FileName;

LoadSelectedImage(imagePath);//使用LV读取图像

}

}

privatevoidLoadSelectedImage(stringimagePath)

{

myVisionImage.ReadFile(imagePath);

myVisionImage.Type=ImageType.Rgb32;//次句一定要加上,不然在进行识别时报错,默认读取进入后是U8单通道格式

}

在halcon窗口上进行roi的划定

privateHObjectGetModelDrawRegion(HObjectdrawImage,refHTuplehv_Row1,refHTuplehv_Column1,refHTuplehv_Row2,refHTuplehv_Column2)

{

HObjectho_ModelRegion,ho_TemplateImage,ho_RegionSelect,ho_RegionUnion,ho_RegionModel;

HObjectho_ModelContours,ho_TransContours=null;

HTuplehv_TempHomMat2D=newHTuple();

HTuplehv_HomMat=newHTuple();

//初始化本地变量值

HOperatorSet.GenEmptyObj(outho_ModelRegion);

HOperatorSet.GenEmptyObj(outho_TemplateImage);

HOperatorSet.GenEmptyObj(outho_ModelContours);

HOperatorSet.GenEmptyObj(outho_TransContours);

HOperatorSet.GenEmptyObj(outho_RegionSelect);

HOperatorSet.GenEmptyObj(outho_RegionUnion);

HOperatorSet.GenEmptyObj(outho_RegionModel);

try

{

HObjectho_temp_brush=newHObject();

hWindow_Final1.DrawModel=true;//缩放功能禁用

HOperatorSet.SetSystem(“border_shape_models”,”false”);

ho_ModelRegion.Dispose();

HalconToolClass.set_display_font(hWindow_Final1.hWindowControl.HalconWindow,10,”mono”,newHTuple(“true”),newHTuple(“false”));

HalconToolClass.disp_message(hWindow_Final1.hWindowControl.HalconWindow,”在窗口中将MARK1点位置框出,点击右键完成”,”window”,20,20,”red”,”false”);

hWindow_Final1.Focus();

HOperatorSet.SetColor(hWindow_Final1.hWindowControl.HalconWindow,”red”);

HOperatorSet.DrawRectangle1(hWindow_Final1.hWindowControl.HalconWindow,outhv_Row1,outhv_Column1,outhv_Row2,outhv_Column2);

HOperatorSet.GenRectangle1(outho_ModelRegion,hv_Row1,hv_Column1,hv_Row2,hv_Column2);

hWindow_Final1.DrawModel=false;

if(hv_Row1.D!=0)

{

brush_region.Dispose();

brush_region=ho_ModelRegion;

}

else

{

hWindow_Final1.HobjectToHimage(drawImage);

HalconToolClass.set_display_font(hWindow_Final1.hWindowControl.HalconWindow,20,”mono”,newHTuple(“true”),newHTuple(“false”));

HalconToolClass.disp_message(hWindow_Final1.hWindowControl.HalconWindow,”未画出有效区域”,”window”,20,20,”red”,”false”);

}

HalconToolClass.set_display_font(hWindow_Final1.hWindowControl.HalconWindow,20,”mono”,newHTuple(“true”),newHTuple(“false”));

hWindow_Final1.DispObj(ho_ModelRegion,”yellow”);

ho_TemplateImage.Dispose();

HOperatorSet.ReduceDomain(drawImage,ho_ModelRegion,outho_TemplateImage);

}

catch

{

MessageBox.Show(“划定模板框出错!”);

}

finally

{

ho_ModelRegion.Dispose();

}

returnho_TemplateImage;

}

划定好ROI后进行颜色的学习,并将学习完毕的颜色向量存入数据库

privatevoidbuttonRecColor_Click(objectsender,EventArgse)

{

HTuplehv_Row1=null,hv_Column1=null,hv_Row2=null,hv_Column2=null;

HObjectho_ModelRegion;

ho_ModelRegion=GetModelDrawRegion(halconImage,refhv_Row1,refhv_Column1,refhv_Row2,refhv_Column2);

double[]lvRoi=ConvertHalconToLV(hv_Row1,hv_Column1,hv_Row2,hv_Column2);//在halcon中矩形的存储为左上行列坐标,右下行列坐标;

//而在LV中,矩形存储方式为中心行列坐标,weight和height长

//查询插入语言

sqlCommand=”INSERTINTOroi_rec_inf(id,left_top_row,left_top_column,right_bottom_row,right_bottom_column)SELECT(SELECTMAX(id)FROMroi_rec_inf)+1,'”+hv_Row1+”‘,'”+hv_Column1+”‘,'”+hv_Row2+”‘,'”+hv_Column2+”‘;”;

mySqlClass.UsualSqlCommand(sqlCommand);

RectangleContourrectangle=newRectangleContour(lvRoi[0],lvRoi[1],lvRoi[2],lvRoi[3]);//矩形

RoirectangleRoi=rectangle.ConvertToRoi();

//该函数为调用的LV中学习颜色的函数,ROI使用halcon窗口中画出的ROI,若此时不存入数据库,也可直接使用colorInformation进行颜色识别

ColorInformationcolorInformation=Algorithms.LearnColor(myVisionImage,rectangleRoi,ColorSensitivity.Low,(int)80);

sqlCommand=@”INSERTINTOcolor_match(

rec_id,color1,color2,color3,color4,color5,color6,color7,color8,color9,color10,color11,color12,color13,color14,color15,color16)

SELECT(SELECTMAX(id)fromroi_rec_inf),

‘”+colorInformation.Information[0]+”‘,'”+colorInformation.Information[1]+”‘,'”+colorInformation.Information[2]+”‘,'”+colorInformation.Information[3]+”‘,'”+colorInformation.Information[4]+”‘,'”+colorInformation.Information[5]+”‘,'”+colorInformation.Information[6]+”‘,'”+colorInformation.Information[7]+”‘,'”+colorInformation.Information[8]+”‘,'”+colorInformation.Information[9]+”‘,'”+colorInformation.Information[10]+”‘,'”+colorInformation.Information[11]+”‘,'”+colorInformation.Information[12]+”‘,'”+colorInformation.Information[13]+”‘,'”+colorInformation.Information[14]+”‘,'”+colorInformation.Information[15]+”‘”;

mySqlClass.UsualSqlCommand(sqlCommand);//插入颜色数据

}

privatedouble[]ConvertHalconToLV(HTuplehv_Row1,HTuplehv_Column1,HTuplehv_Row2,HTuplehv_Column2)

{

doublewidth=0,height=0;

if(hv_Row2>hv_Row1)

{

width=hv_Row2-hv_Row1;

}

if(hv_Column2>hv_Column1)

{

height=hv_Column2-hv_Column1;

}

double[]lvRoi={hv_Column1,hv_Row1,width,height};//需要传出的左上横纵坐标及宽,长信息

returnlvRoi;

}

现在进行图像颜色识别,给定要识别的ROI区域及对应的图像和之前保存的颜色向量,函数返回匹配分值

privatevoidMatchColor(HObjectimageMatch)

{

VisionImagemyImage=newVisionImage();

myImage.Type=ImageType.Rgb32;

LoadSelectedImage(“F:\\tempImage.jpeg”,refmyImage);

double[]lvROI=ConvertHalconToLV(Convert.ToDouble(dtSelect.Rows[0][“left_top_row”].ToString()),Convert.ToDouble(dtSelect.Rows[0][“left_top_column”].ToString()),Convert.ToDouble(dtSelect.Rows[0][“right_bottom_row”].ToString()),Convert.ToDouble(dtSelect.Rows[0][“right_bottom_column”].ToString()));

RoirectangleRoi=newRoi(newRectangleContour(lvROI[0],lvROI[1],lvROI[2],lvROI[3]));//矩形

qlCommand=”SELECTcolor1,color2,color3,color4,color5,color6,color7,color8,color9,color10,color11,color12,color13,color14,color15,color16FROMcolor_matchWHERErec_id='”+Convert.ToInt32(dtSelect.Rows[0][“id”].ToString())+”‘;”;

DataTabledtColor=mySqlClass.SelectDataUsual(sqlCommand);

double[]colorValue=DTConvertToDouble(dtColor);

ColorInformationmyColorInformation=newColorInformation(newCollection<double>(colorValue));

Collection<int>scores=Algorithms.MatchColor(myImage,myColorInformation,rectangleRoi);

if(scores[0]<700)

{

DoNGSomething(Convert.ToInt32(dtSelect.Rows[0][“id”].ToString()));

richTextBox1.Text=”NG”;

}

else

{

DoOKSomething(Convert.ToInt32(dtSelect.Rows[0][“id”].ToString()));

richTextBox1.Text=”OK”;

}

}

总结:

先在halcon窗口上划定ROI区域,将此ROI转换为LV中Roi类型,然后调用ColorInformation=Algorithms.LearnColor(image,roi,low,threshold)方法,该函数返回16行向量值ColorInformation即为该区域的颜色分布

给定ROI区域(同样在halcon中划定并进行转换),调用Algorithms.MatchColor(image,ColorInformation,roi)进行指定区域的颜色识别,该方法返回一个匹配分值

在给定image值时,一定要将其typeImage类型设定为RGB32

关于颜色识别器在线的内容到此结束,希望对大家有所帮助。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1553299181@qq.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.gujiufaka.com/16798.html