用vc++实现连通区域标记
- 格式:pdf
- 大小:485.87 KB
- 文档页数:5
第26卷第6期农业工程学报V ol.26No.62010年6月Transactions of the CSAE Jun. 2010199多对象特征提取和优化神经网络的玉米种子品种识别王玉亮1,刘贤喜2※,苏庆堂3,王朝娜2(1.南京航空航天大学机电学院,南京210016;2.山东农业大学机械与电子工程学院,泰安271018;3.鲁东大学现代教育技术教学部,烟台264025)摘要:为了实现机器视觉代替人的视觉,对玉米种子品种进行实时、客观、准确和无损伤识别,研制了玉米品种识别硬件系统和软件系统。
针对玉米种子及种子图像的特点,对玉米种子品种识别技术与算法进行了深入地研究和探索,提出了一种基于多对象有效特征提取和主成分分析优化神经网络的玉米种子品种识别方法,提取了玉米种子的几何特征和颜色特征参数,优化了基于机器视觉的玉米种子图像处理策略和品种识别算法,提高了玉米品种识别的速度和准确率。
对农大108、鲁单981、郑单958、五岳18共4个品种玉米种子进行了品种识别试验,每粒种子识别的平均耗时为0.127s ,综合识别率达到97%以上。
研究表明,基于机器视觉的玉米种子品种识别与检测方法是可行的,该方法可提高玉米种子品种识别效率和正确率。
关键词:特征提取,主成分分析,神经网络,玉米种子,品种识别doi :10.3969/j.issn.1002-6819.2010.06.035中图分类号:TP391,S513文献标识码:A 文章编号:1002-6819(2010-06-0199-06王玉亮,刘贤喜,苏庆堂,等.多对象特征提取和优化神经网络的玉米种子品种识别[J].农业工程学报,2010,26(6:199-204.Wang Yuliang, Liu Xianxi, Su Qingtang, et al. Maize seeds varieties identification based on multi-object feature extraction and optimized neural network[J]. Transactions of the CSAE, 2010, 26(6:199-204. (inChinese with English abstract0引言玉米作为中国主要的农作物之一,在食品、饲料等行业中备受关注。
OpenCV Blob分析-基于FindContours联通区域分析本文是一个较完整的Blob分析思路解说,是用OpenCvSharp联合c#编写的。
思路如下:1、对图像进行二值化2、设定ROI3、腐蚀、膨胀(可选)4、边缘提取(有区分是否需填充孔洞)5、进行筛选看一组使用效果图1 原图图2 提取黑色对象图3 提取黑色对象并填充孔洞部分源代码解说:InputImage来着输入的要处理的图片。
gray_min、gray_max二值化的上下阈值1、对图像进行二值化(根据二值化的上下阈值来判定二值化方式)Mat binaryImage = new Mat(InputImage.Size(), MatType.CV_8UC1, Scalar.Black);if (gray_min != 0 && gray_max != 255){binaryImage = InputImage.Threshold(gray_min, 255, ThresholdTypes.Binary);Mat binaryImage2 = InputImage.Threshold(gray_max, 255, ThresholdTypes.BinaryInv);Mat binaryImage3 = new Mat(InputImage.Size(), MatType.CV_8UC1,Scalar.Black);binaryImage.CopyTo(binaryImage3, binaryImage2);binaryImage = binaryImage3.Clone();binaryImage2.Dispose();binaryImage3.Dispose();}else{if (gray_min == 0) binaryImage = InputImage.Threshold(gray_max, 255, ThresholdTypes.BinaryInv);if (gray_max == 255) binaryImage = InputImage.Threshold(gray_min, 255, ThresholdTypes.Binary);}Mat binaryImage1 = new Mat(InputImage.Size(), MatType.CV_8UC1, Scalar.Black);2、设定ROI(Mask就是ROI感兴趣区域)binaryImage.CopyTo(binaryImage1, Mask);3、腐蚀、膨胀(可选)if (erosion_dilation == "腐蚀"){Cv2.Erode(binaryImage1, binaryImage1, element);}else{Cv2.Dilate(binaryImage1, binaryImage1, element);}4、边缘提取(有区分是否需填充孔洞)if (fill_up_flag == true){Cv2.FindContours(binaryImage1, out contours, hierarchy, RetrievalModes.External, ContourApproximationModes.ApproxSimple);}else{Cv2.FindContours(binaryImage1, out contours, hierarchy, omp, ContourApproximationModes.ApproxSimple);}5、进行筛选Mat uu = hierarchy.GetMat();// 筛选那些面积小的List<MyCenter> centers = new List<MyCenter>();List<RotatedRect> regions = new List<RotatedRect>();var detectorParams = new SimpleBlobDetector.Params{MinDistBetweenBlobs = 10, // 10 pixels between blobsMinRepeatability = 1,MinThreshold = 0,MaxThreshold = 128,ThresholdStep = 2,FilterByArea = area_bool,MinArea = area_min, // 10 pixels squaredMaxArea = area_max,//圆度FilterByCircularity = circularity_bool,MinCircularity = circularity_min,MaxCircularity = circularity_max,// 凸包形状分析 - 过滤凹包FilterByConvexity = false,//FilterByConvexity = true,MinConvexity = 0.001f,MaxConvexity = 10,FilterByInertia = false,//FilterByInertia = true,MinInertiaRatio = 0.001f,FilterByColor = false,//FilterByColor = true,BlobColor = 255 // to extract light blobs};MyCenter center;int j = 0;Vec4i value;Mat cnt = new Mat();foreach (Mat cnt0 in contours){value = uu.Get<Vec4i>(0, j);j++;//int i = hierarchy;// 根据轮廓面积进行筛选if (value[3] != -1){cnt = contours[value[3]];}else{cnt = cnt0;}center.confidence = 1;Moments moms = Cv2.Moments(cnt);if (detectorParams.FilterByArea) //斑点面积的限制{double area = moms.M00; //零阶矩即为二值图像的面积//如果面积超出了设定的范围,则不再考虑该斑点if (area < detectorParams.MinArea || area >= detectorParams.MaxArea)continue;}if (detectorParams.FilterByCircularity) //斑点圆度的限制{double area = moms.M00; //得到斑点的面积//计算斑点的周长double perimeter = Cv2.ArcLength(cnt, true);//由公式3得到斑点的圆度double ratio = 4 * Cv2.PI * area / (perimeter * perimeter);//如果圆度超出了设定的范围,则不再考虑该斑点if (ratio < detectorParams.MinCircularity || ratio >= detectorParams.MaxCircularity)continue;}if (detectorParams.FilterByInertia) //斑点惯性率的限制{//计算公式13中最右侧等式中的开根号的值double denominator = Math.Sqrt(Math.Pow(2 * moms.Mu11, 2) +Math.Pow(moms.Mu20 - moms.Mu02, 2));const double eps = 1e-2; //定义一个极小值double ratio;if (denominator > eps){//cosmin和sinmin用于计算图像协方差矩阵中较小的那个特征值λ2double cosmin = (moms.Mu20 - moms.Mu02) / denominator;double sinmin = 2 * moms.Mu11 / denominator;//cosmin和sinmin用于计算图像协方差矩阵中较大的那个特征值λ1double cosmax = -cosmin;double sinmax = -sinmin;//imin为λ2乘以零阶中心矩μ00double imin = 0.5 * (moms.Mu20 + moms.Mu02) - 0.5 * (moms.Mu20 - moms.Mu02) * cosmin - moms.Mu11 * sinmin;//imax为λ1乘以零阶中心矩μ00double imax = 0.5 * (moms.Mu20 + moms.Mu02) - 0.5 * (moms.Mu20 - moms.Mu02) * cosmax - moms.Mu11 * sinmax;ratio = imin / imax; //得到斑点的惯性率}else{ratio = 1; //直接设置为1,即为圆}//如果惯性率超出了设定的范围,则不再考虑该斑点if (ratio < detectorParams.MinInertiaRatio || ratio >= detectorParams.MaxInertiaRatio)continue;//斑点中心的权值定义为惯性率的平方center.confidence = ratio * ratio;}if (detectorParams.FilterByConvexity) //斑点凸度的限制{Mat hull = new Mat(); //定义凸壳变量//调用convexHull函数,得到该斑点的凸壳Cv2.ConvexHull(cnt, hull);//分别得到斑点和凸壳的面积,contourArea函数本质上也是求图像的零阶矩double area = Cv2.ContourArea(cnt);double hullArea = Cv2.ContourArea(hull);double ratio = area / hullArea; //公式5,计算斑点的凸度//如果凸度超出了设定的范围,则不再考虑该斑点if (ratio < detectorParams.MinConvexity || ratio >= detectorParams.MaxConvexity)continue;}//根据公式7,计算斑点的质心center.location = new Point2d(moms.M10 / moms.M00, moms.M01 / moms.M00);// 根据轮廓近似进行筛选,作用很小double epsilon = 0.001 * Cv2.ArcLength(cnt, true);Mat approx = new Mat();Cv2.ApproxPolyDP(cnt, approx, epsilon, true);// 根据最小矩形进行筛选,该矩形可能有方向RotatedRect rect = Cv2.MinAreaRect(approx);//int row = rect.BoundingRect().X;//int col = rect.BoundingRect().Y;if (width_bool){int width = rect.BoundingRect().Width;if (width < width_min || width > width_max) continue;}if (height_bool){int height = rect.BoundingRect().Height;if (height < height_min || height > height_max) continue;}//根据质心来判断颜色不合理,但是我觉得这个不合理就把它禁用了//if (detectorParams.FilterByColor) //斑点颜色的限制//{// //判断一下斑点的颜色是否正确// if (binaryImage.At(int) (cvRound(center.location.Y),cvRound(center.location.X)) != detectorParams.BlobColor)// continue;// }////compute blob radius//{// Mat dists; //定义距离队列// //遍历该斑点边界上的所有像素// for (size_t pointIdx = 0; pointIdx < contours[contourIdx].size(); pointIdx++)// {// Point2d pt = contours[contourIdx][pointIdx]; //得到边界像素坐标// //计算该点坐标与斑点中心的距离,并放入距离队列中// dists.push_back(norm(center.location - pt));// }// std::sort(dists.begin(), dists.end()); //距离队列排序// //计算斑点的半径,它等于距离队列中中间两个距离的平均值// center.radius = (dists[(dists.size() - 1) / 2] + dists[dists.size() / 2]) / 2.;//}centers.Add(center);outcontours.Add(cnt0);}。
直流高电压试睑细则1试验条件1.1环境要求除非另有规定,试验均在以下大气条件下进行,且试验期间,大气环境条件应相对稳定。
a)环境温度不宜低于温度对泄漏电流的影响是极为显著的,因此,最好在以往试验相近的温度条件下进行测量,以便于进行分析比较。
b)环境相对湿度不宜大于80%oc)现场区域满足试验安全距离要求。
1.2待试设备要求a)待试设备处于检修状态,且待试设备上无接地线或者短路线。
b)试品的表面应清洁干燥,试品在试验前不应受机械、热的作用。
c)充油设备若经滤油或运输,耐压试验前应将试品按规定时间静置并排气,以排除内部可能残存的气体。
d)设备上无各种外部作业。
1.3人员要求试验人员需具备如下基本知识与能力:a)了解各种绝缘材料、绝缘结构的性能、用途。
b)了解各种电力设备的型式、用途、结构及原理。
c)熟悉变电站电气主接线及系统运行方式。
d)熟悉各类试验设备、仪器、仪表的原理、结构、用途及使用方法,并能排除一般故障。
e)能正确完成试验室及现场各种试验项目的接线、操作及测量。
f)熟悉各种影响直流高电压试验结论的因素及消除方法。
g)经过上岗培训并考试合格。
1.4安全要求a)应严格执行《国家电网公司电力安全工作规程(变电部分)》的相关要求。
b)高压试验工作不得少于两人。
试验负责人应由有经验的人员担任,开始试验前,试验负责人应向全体试验人员详细交待试验中的安全注意事项,交待邻近间隔的带电部位,以及其他安全注意事项。
c)试验现场应装设遮栏或围栏,遮栏或围栏与试验设备高压部分应有足够的安全距离,向外悬挂“止步,高压危险!”的标示牌,并派人看守。
d)应确保操作人员及试验仪器与电力设备的高压部分保持足够的安全距离,且操作人员应使用绝缘垫。
e)试验装置的金属外壳应可靠接地,高压引线应尽量缩短,并采用专用的高压试验线,必要时用绝缘物支持牢固。
f)对于被试设备两端不在同一工作地点时,如电力电缆另一端应派专人看守。
g)加压前必须认真检查试验接线,使用规范的短路线,表计倍率、量程、调压器零位及仪表的开始状态,均应正确无误。
PDH 、SDH 、MSTP 、ASON/PTN 、OTN技术介绍第一部分:PDH 准同步数字系列(1) PCM30/32路 即E1 欧洲和我国采用此标准 (2) PCM24/路 即T1 北美采用此标准 一、 E1和T1PCM 脉冲调制,对模拟信号采样,8000个样值每S ,每个样值8bit ,所以一个话路的速率为64kbps 。
E1有32个时隙,TS0用来同步,TS16用来传送信令,其中30路用来传话音信号的,32个话路的速率为2.048Mbps ,即PCM 基群,也叫一次群。
…,他们的速率是四倍关系。
T1的采样与E1相同,只是有24个话路,其速率为64kbps*24 = 1.544Mbps 四个一次群复用为一个二次群,当然一个二次群的速率比四个一次群的速率总和还要多一些,用于同步的码元。
四个二次群复用为一个三次群,依次类推。
E1=2.048、E2=8.448、E3=34.368Mbps ……二、 在传送网上传送时,现在的PDH 体制中,只有1.5Mbit/s 和2Mbit/s 速率的信号是同步的,其他速率的信号都是异步的,需要通过码速的调整来匹配和容纳时钟的差异。
由于PDH 采用异步复用方式,那么就导致当低速信号复用到高速信号时,其在高速信号的帧结构中的位置没规律性和固定性。
也就是说在高速信号中不能确认低速信号的位置,而这一点正是能否从高速信号中直接分/插出低速信号的关键所在。
所以在传送过程中,难于从高次群信号中直接分出低次群甚至基群的信号,也就是说四次群必须先分接为三次群,而不能直接分接为一次群,这就使得在对中继站上、下话路时,需要进行多级的复用分接,使得上下话路不方便,而且较多的接口对于信号的损伤非常大。
使得提取的时钟出现不一致。
也增加了设备的复杂性,降低了效率和可靠性。
又存在多个制式,接口不统一,这就促成了PDH 发展为SDH——数字同步系列。
此部分介绍了PDH中的E1,和PDH组网的缺陷。
江苏省计算机二级考试备考提纲第一章Visual C++程序设计入门1>定义标识符规则:第一个字符只能是英文字母或下画线,后面可跟字母,数字,下画线;不能是C++语言的关键字。
2>键盘上除去3个字符:@,¥,其余的可显示字符在程序代码中均能使用。
3>编写程序的注意事项:/*和*/为多行注释,//为单行注释,从标识起至本行结束:程序一般包含输入输出编译预处理命令;C++的程序有且只有一个主函数main;对于C++编译器而言,一条语句可以写成若干行,一行内也可以写若干条语句,:而且它严格区分大小写字母。
4>运算符;1.求模/余运算符%,要求操作数必须都是整形数,若不是整型数必须将操作数强制转化成整型再进行求余运算,否则将出现编译错误,如(int)5.2%3=2; 2.若操作数中有负值,求余原则为:先取绝对值求余,余数取与被除数相同的符号,如-10%3=-1,10%-3=1. 3。
而除法运算符/和*,若两个操作数都是整型,则结果也是整型,若有一个是实型,则结果是实型。
4。
注意,如a=4,b=3,c=2,求a>b>c的值,因为原式=(a>b)>c,a>b值为1,则原式相当于1>c,所以最终结果是0。
5。
自增、减运算符的操作数不能是常量或表达式,如2++,(x+1)++都是不合法的,再如,2*a++等价于2*(a++). 6.条件运算符“?:”是C++中唯一的三目运算符,条件表达式的一般格式为:逻辑表达式1?表达式2:表达式3.,1为真执行2,为假执行3,注意:条件表达式的功能相当于条件语句,但一般不能取代if语句;表达式1,2,3类型可不同,此时条件表达式的值取较高的类型,如a>b?2:5.5,a<b时,值为5.5,a>b时,值为2.0,而不是2。
注意:逗号运算符计算方法:按先后顺序依次计算各个表达式的值,最后一个表达式的值作为整个逗号表达式的值。
一种基于关节角度的步态识别新方法曾莹;刘波【摘要】基于行走运动的关节角度变化包含更丰富的个体识别信息的观点,提出利用下肢关节角度进行步态识别的新方法.依据人体解剖学的先验知识,通过对下肢运动分析定位盆骨、左右膝、左右踝关节点,提取相邻关节点连线与竖直线的夹角作为运动关节角度.识别时.考虑到NN,KNN等传统步态分类器分类能力较弱的缺点,采用针对小样本问题具有很好分类效果的支持向量机对步态特征向量进行分类.CASIA步态数据库上的仿真结果证明该方法具有较高的识别性能.【期刊名称】《现代电子技术》【年(卷),期】2010(033)010【总页数】4页(P86-89)【关键词】步态识别;支持向量机;关节角度;轮廓特征【作者】曾莹;刘波【作者单位】湖南农业大学,东方科技学院,湖南,长沙,410128;湖南农业大学,东方科技学院,湖南,长沙,410128【正文语种】中文【中图分类】TP391.410 引言步态识别是一种新兴的生物特征识别技术,旨在通过人行走的姿势来识别人的身份。
因其具备在远距离或低视频质量情况下的识别潜力,且难以隐藏或伪装,近年来引起了各国学术界的广泛关注。
人的步态是自身生理结构、行为习惯、心理状态等诸多因素在行走时的外在综合表现。
由于个体之间存在差异,步态亦不尽相同,故步态特征可以为人的身份识别提供独特的线索。
步态特征既包括身高、体形等基于几何度量的特征,也包括对行为变化较敏感的运动学特征,如关节点的运动轨迹及位移速度、肢体关节角度等。
直观上,人类视觉对步态的识别很大程度上依赖于人体轮廓形状随时间的变化过程[1],因此,现有的步态识别方法大多基于人体轮廓特征。
文献[2]应用傅里叶描述子描述人步行时的轮廓特征,利用模板匹配法获取待测样本与训练样本的相似度,最后采用最近邻分类器进行决策;文献[3]利用人体二值图像的侧面外轮廓宽度矢量作为步态特征,使用隐马尔可夫模型(HMM)进行步态识别;文献[4]提出一种是基于Procrustes形状分析的步态识别方法,利用统计形状分析提取步态特征向量,分别采用最近邻分类器、K近邻分类器及最近标本分类器进行分类识别。
vc注释技巧一、什么是vc注释1. 简单来说呢,vc注释就是在写vc程序的时候,给代码做的一些小标记、小解释。
就好像你在课本上划重点,然后在旁边写上为啥这是重点一样。
比如说,你有一段代码是计算两个数相加的,那注释可能就是“这个部分是计算变量a和变量b的和”。
这就像是给代码加了个小标签,让人一看就明白这代码是干啥的。
2. 它可重要啦。
就像你走在一个陌生的城市,如果没有路标,你是不是很容易迷路呀?代码也是这样,没有注释,别人看你的代码就跟在陌生城市没路标一样,完全不知道哪跟哪。
二、注释的风格1. 清晰明了型这种风格就是把事情说得特别直白。
比如你有个函数是用来打开文件的,注释就可以写“这个函数的作用是打开名为xxx的文件,使用的是xxx模式”。
不要搞那些花里胡哨的,简单直接就好。
就像你跟朋友说事儿,直来直往。
2. 幽默风趣型有时候你可以在注释里加点小幽默。
例如有个代码块是处理错误的,你可以写“这里呢,就像是一个小医生,专门给代码的小毛病看病。
要是代码‘生病’了,这个部分就会来治它”。
这样的注释会让看代码的人会心一笑,也更容易记住代码的功能。
三、注释的位置1. 在函数开头这是最常见的位置啦。
当你写一个函数的时候,在函数的最开始就写注释。
就像给这个函数做个自我介绍一样。
比如说“这个函数是用来计算圆的面积的,输入的是圆的半径,输出的是圆的面积”。
这样别人一看到这个函数,就马上知道它是干啥的了。
2. 在代码块旁边如果你的代码里有一段比较复杂的逻辑,比如说一个嵌套的循环,那就在这个循环旁边写上注释。
比如说“这个循环是用来遍历数组中的每个元素的,然后对每个元素进行某种操作”。
这就像给这个复杂的逻辑做个小导游,引导别人理解。
四、注释的内容1. 功能描述这是注释最基本的内容啦。
就是说清楚代码是干什么的。
比如有个代码是用来排序的,注释就写“这个部分是对输入的数组进行排序,采用的是冒泡排序算法”。
2. 输入输出说明要告诉别人这个代码需要什么输入,又会输出什么。
基于曲率突变分析的点云特征线自动提取陈华伟;袁小翠;吴禄慎;王晓辉【摘要】点云特征线提取是点云模型重构的基础,国内外对此从边缘检测、特征线跟踪和面域分析等方面展开了研究,但由于存在模型多样性、点云数据噪声和不完整性、特征复杂性等问题,看似简单的特征线自动化提取很难实现.从曲率突变点隐含了点云特征线这一论断出发,借鉴图像处理中的区域分割和边缘检测思想,提出了特征线提取中的聚类、细化、分段和排序方案.在具体实现中分别提出了基于连通区域聚类的备选点集分离算法,基于局部影响区域腐蚀的点集细化算法,以及基于组合搜索准则和主成分分析(PCA)双向搜索的特征线分支截断和排序算法.在对比实验中,确定了算法关键参数曲率突变点比例w和方向夹角阈值θT的推荐值,并与类似算法对比能提取更多的特征点;在模型实验中,简单几何模型的特征线提取正确率达到了100%,复杂机械零件模型和艺术品模型的特征线提取正确率均达到了85%以上,取得了预想的棱线和特征轮廓线提取效果.算法具有通用性和可扩展性,通过程序优化可获得更好的特征提取效果.【期刊名称】《光学精密工程》【年(卷),期】2019(027)005【总页数】11页(P1218-1228)【关键词】点云模型;曲率突变;特征线提取;连通区域;细化算法【作者】陈华伟;袁小翠;吴禄慎;王晓辉【作者单位】贵州师范大学机电工程学院,贵州贵阳550025;南昌工程学院江西省精密驱动与控制重点实验室,江西南昌330099;南昌大学机电工程学院,江西南昌330031;南昌大学机电工程学院,江西南昌330031【正文语种】中文【中图分类】TP391.41 引言特征线提取技术是数字几何处理、计算机可视化及逆向工程等领域中的一项重要研究内容。
在三角网格模型和点云模型中,特征线是特征点的有序连接,可以很好地表达和识别3D模型的几何特征,改善几何处理中的性能,并广泛应用于面域分割、曲面重建和形状识别。
点云模型特征提取就是在保留反映几何模型形状的棱边、尖角、凸凹处和过渡光滑处的特征数据,这些特征信息表达了物体的外轮廓。
3S技术在工程测绘中的应用摘要:3S技术在空间信息处理领域具有不可替代的作用,也是地质测绘信息化的助推剂,因此本文以工程选址、防护工程测量、地下管线探测为例,分析了3S技术在工程测绘中的应用。
关键词:3S;工程测绘;应用1 3S技术概念、特点与优势1.1 3S技术概念3S技术是全球定位系统(GPS)、地理信息系统(GIS)与遥感技术(RS)的统称,将卫星定位与导航技术、数据库与空间分析技术、传感器与空间探测技术、通信技术等结合,形成多学科高度集成的空间信息采集、处理、管理、分析、应用的技术[1]。
1.2 3S技术特点与优势3S技术具有信息集成化、实时性、便捷性、交互性等特点。
3S技术的长处在于它综合了GPS、GIS和RS各自的优点,并把三者综合为一个有机整体,在城市规划、工程建设、资源管理、环境保护、灾害调查等众多领域发挥着积极作用,具有信息获取高效、准确、及时、全面的优势[1,2]。
2 3S技术在工程测绘中的应用2.1 3S技术在工程选址测绘中的应用2.1.1 工程选址的影响因素工程选址时,需要考虑自然因素、地形、水文、地质、人类活动、生态环境等因素。
选址不当,不仅增加工程建设的难度,在工程运营管理时也可能遇到麻烦,所以选址必须慎重,应综合考虑各方面的因素,而3S技术的应用为这项工作提供了最好的平台。
2.1.2 GPS测量GPS可以为工程选址提供位置信息,同时GPS测量车记录重点设施位置,向摄影测量、激光扫描等测量手段提供控制点坐标,并用于生成DEM(数字高程模型),可为工程选址背景地图精度分析提供帮助。
GPS测量车由GPS接收器、惯性测量、距离测量等装置组成,可用于定位导航和动态测量。
2.1.3 RS图像处理RS图像可以为工程选址提供所需的图层。
为了满足选址需要必须对图像进行处理,其中主要是突出待研究区域的一些特征,为此需进行增强处理。
一般采用空域法、频域法来增强图像。
处理时,为消除背景噪声,还要进行滤波处理。
一种新的连通域标记算法
谢宜壮;谭许彬;陈禾
【期刊名称】《北京理工大学学报》
【年(卷),期】2012(32)12
【摘要】提出一种新的连通域标记算法.与其它适合硬件实现的算法相比,增加了虚警剔除部分,并将一维数组和游程码的结构结合成二维数组的形式进行操作,使新算法在速度、资源占用率、性能上更有优势.算法的Matlab和现场可编程门阵列(FPGA)仿真结果表明,新算法可以完备记录标记和参数信息;应用于要求快速得到准确参数信息的工程时,相比较其他算法,时间减少约50%,且控制逻辑的复杂性减小.【总页数】6页(P1273-1278)
【关键词】连通域标记;现场可编程门阵列(FPGA);二维数组;虚警剔除
【作者】谢宜壮;谭许彬;陈禾
【作者单位】北京理工大学雷达技术研究所
【正文语种】中文
【中图分类】TN957.51
【相关文献】
1.一种基于连通域标记的纸病检测算法 [J], 赵晓;何立风;姚斌;高启航;杨云
2.一种适于硬件实现的快速连通域标记算法 [J], 张国和;徐快;段国栋;赵晨;梁峰
3.基于快速8-连通域标记的视频字幕提取新算法 [J], 李芳;吴斌;张红英
4.一种并行二值图像连通域标记算法 [J], 甘晓英;白阳;何晓栋;刘斌
5.一种适合硬件实现的多值图像连通域标记算法 [J], 桑红石;傅勇;张天序;刘云生因版权原因,仅展示原文概要,查看原文内容请购买。
vc对话框画方格VC对话框是一种常用的用户界面元素,用于显示信息、获取用户输入或进行交互。
在VC++中,我们可以使用对话框资源来创建自定义的对话框窗口。
本文将介绍如何使用VC对话框来画方格,并通过拓展展示更多有趣的功能。
首先,创建一个新的VC++对话框项目。
在对话框资源中设计一个空白的对话框窗口,并在其中添加一个按钮,用于触发绘制方格的操作。
在对话框类的头文件中添加绘制方格的函数声明,并在源文件中实现该函数。
可以使用绘图函数`CDC::Rectangle()`来绘制方格,该函数的参数为方格的左上角和右下角的坐标。
下面是一个基本的绘制方格的函数示例:```cppvoid CMyDialog::DrawGrid(){CClientDC dc(this);CRect rectClient;GetClientRect(&rectClient);int width = rectClient.Width();int height = rectClient.Height();int gridWidth = width / 10;int gridHeight = height / 10;for (int i = 0; i < 10; i++){for (int j = 0; j < 10; j++){CRect gridRect(i * gridWidth, j * gridHeight, (i + 1) * gridWidth, (j + 1) * gridHeight);dc.Rectangle(gridRect);}}}```在按钮的点击事件处理函数中调用`DrawGrid()`函数即可实现在对话框窗口上绘制一个由10x10个方格组成的网格。
除了基本的绘制方格功能,我们还可以拓展VC对话框的画方格功能。
例如,可以在鼠标移动时,根据鼠标的位置动态绘制方格。
同时,还可以添加颜色选择的功能,让用户可以自定义绘制方格的颜色。
2022年第06期61PTN 业务带宽的分配管理及PTN 在城域传送网中的承载应用梁玉娟中移铁通有限公司广东分公司,广东 广州 510060摘要:随着电信业务逐渐IP 化,在城域传输汇聚接入层中,以电路交换为核心的SDH 技术增加了二层数据交换功能的MSTP 设备,已经越来越难以承载大量的数据业务。
结合上述背景,文章分析了PTN 分组传送网的原理与技术特点,论述了PTN 业务带宽的分配管理方法,结合城域网承载存在的问题以及PTN 技术在城域传输网中的定位、组网原则及相关应用案例,阐述了PTN 技术在城域传输网中的承载应用配置方案,以适应通信行业的发展要求。
关键词:PTN ;城域网;数据业务;承载方式中图分类号:TN929.10 引言随着互联网和宽带接入的日益普及,电信业务逐渐IP 化,传统的程控交换业务逐渐退出历史舞台,软交换和IMS 取而代之,同时,数据业务对带宽的要求也从100MB 上升到1000MB 甚至10000MB。
曾在城域传送网建设中处于主导地位的SDH 光传送网,随着无源光网络(PON)技术的应用,SDH 这种以TDM 作为内核的固定带宽通道的设备已经越来越难以承载大量的数据业务。
而大容量的波分技术由于传送颗粒大、组网单一、成本高等原因,难以应用到接入层设备。
同时,基于SDH+PDH+光电转换器的传统传输网络已经无法满足业务承载的带宽要求,大量的业务只能通过光缆直接承载,既缺乏业务保护又受到光缆资源的限制难,让该业务以为继。
因此,大容量、高性能、低成本、安全的传输需求成为城域传送网的主要任务,以适应未来业务发展的需求。
1 PTN 分组传送网的原理与技术特点PTN 分组传送网(Packet Transport Network)通过PWE3端到端的伪线仿真技术实现对传统业务的承载。
PTN 分组传送网强调分组传送,具有面向连接可靠性、业务保护安全性、接口标准化、可扩展性等特点,并具有电信级OAM 的维护管理功能,继承了SDH 优异的时钟传输特性和MPLS 的转发机制和多业务的承载能力[1]。
(光纤通信)职业技能鉴定四级题库含参考答案一、单选题(共65题,每题1分,共65分)1.GF2488-01B设备上指示灯( )的是备用机盘。
A、快闪B、慢闪C、常亮D、常暗正确答案:B2.光接收机灵敏度一般采用的的单位是( )。
A、dBrB、dBmoC、dBmD、mV正确答案:C3.光纤通信系统的不中断业务监测常在( )中使用。
A、工程验收B、故障检查C、系统调制D、日常维护正确答案:D4.LOF代表的含义是 ( )。
A、复帧丢失B、信号丢失C、帧丢失D、指针丢失正确答案:C5.在光纤通信系统中,光源的中心波长与( )必须一致。
A、光纤的中心波长B、光纤的模场直径C、光纤的衰减系数D、光纤的截止波长正确答案:D6.将300-3400Hz频带内的任一正弦信号以0dB.电平加到四线模拟输入口,在相应返回信道输出口测得的串音电平不应超过( )。
A、-45dBB、-78dBC、-65dBD、-60dB正确答案:D7.中兴设备组网为二纤通道保护环时,2M业务可以实现保护,其倒换是依据()。
A、APS保护倒换协议B、交叉板时分对TU12的优选C、TU-AIS和TU-LOPD、支路板的并发优收正确答案:D8.ZXSM-150/600/2500单子架可直接上下的2M数量为()。
A、504B、1008C、2016D、822正确答案:B9.G30564为( )级传输系统。
A、四B、五C、一D、二正确答案:B10.在SDH设备中,能够终结和产生RSOH的是( )。
A、低阶界面B、低阶组装器C、高阶组装器D、再生器正确答案:D11.DWDM系统中,某光板的MON口从主光通道中分出1%,在该口测得光功率为-25dBm,那么主光通道光功率为( )。
A、-125dBmB、-50dBmC、75dBmD、-5dBm正确答案:D12.对设备的温度检查要( )进行一次。
A、每2天B、每天C、每小时D、每12小时正确答案:B13.在/T2000/server/database目录下,对mo目录打包的方式正确的是()。
前言 在图像处理过程中,经常会遇到这样一部分图像,图像的整体部分如果人来看的话一眼就能看出,但是它的内部由于有各种小缺口,导致断开了,这样在计算机“眼”里就被认为是断开的,为了使图像达到适应人眼的感觉,需要将这些缺口和断开的口给连接上去,这就需要用到计算机图形学中的连通域处理技术。本文给出一个简单的连通域处理函数,当然这个函数是来自OpenCV著名教程Learning OpenCV中,只不过它的接口是基于c版本的OpenCV,而到目前为止,基于C++接口的OpenCV已经是主流,所以我将其接口改成了c++版的,但是其内部一些代码基本没有动它。
开发环境:OpenCV2.4.3+QtCreator2.5.1
实验基础 首先来看这个连通域处理函数的形式: void ConnectedComponents(Mat &mask_process, int poly1_hull0, float perimScale, int number = 0, Rect &bounding_box = Rect(), Point &contour_centers = Point(-1, -1));
参数mask表示的是需要进行连通域处理二值图像。 参数poly1_hull0表示轮廓边缘是否采用多边形拟合,如果该参数为1,则表示采用多边形拟合,否则采用凸包拟合。
参数perimScale是用来将那些小的轮廓去掉,那些小的轮廓时指它的周长小于(mask长+宽)/perimScale。当然你在其内部代码也可以该为面积来判断。
参数num表示实际需要处理最多的轮廓的个数(如果输入的mask有多个轮廓的话),这里的处理是指计算出这些轮廓的外接矩形和中心点。默认值为0,表示函数内部不需要处理这些外接矩形和中心点。
参数bbs表示的是处理完后对应轮廓的外接矩形,默认值为Rect(),表示不需要返回这些外接矩形。
参数centers表示处理完后对应轮廓的中心点坐标,默认值为Point(-1, -1),表示不需要返回这些中心点。