您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
如何用LabVIEW做颜色识别?
颜色,区域,图像如何用LabVIEW做颜色识别?
发布时间:2020-12-06加入收藏来源:互联网点击:
mySqlClass.UsualSqlCommand(sqlCommand); // 插入颜色数据
}
private double[] ConvertHalconToLV(HTuple hv_Row1, HTuple hv_Column1, HTuple hv_Row2, HTuple hv_Column2)
{
double width = 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 };// 需要传出的左上横纵坐标及宽,长信息
return lvRoi;
}
现在进行图像颜色识别,给定要识别的ROI区域及对应的图像和之前保存的颜色向量,函数返回匹配分值
private void MatchColor(HObject imageMatch)
{
VisionImage myImage = new VisionImage();
myImage.Type = ImageType.Rgb32;
LoadSelectedImage("F:\tempImage.jpeg", ref myImage);
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()));
Roi rectangleRoi = new Roi(new RectangleContour(lvROI[0], lvROI[1], lvROI[2], lvROI[3])); // 矩形
qlCommand = "SELECT color1, color2, color3, color4, color5, color6, color7, color8, color9, color10, color11, color12, color13, color14, color15, color16 FROM color_match WHERE rec_id = '" + Convert.ToInt32(dtSelect.Rows[0]["id"].ToString()) + "';";
DataTable dtColor = mySqlClass.SelectDataUsual(sqlCommand);
double []colorValue = DTConvertToDouble(dtColor);
ColorInformation myColorInformation = new ColorInformation(new Collection<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
回答于 2019-09-11 08:43:50
仅仅只是用LabVIEW做一个颜色识别系统,它的大概原理是啥
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |