CN103234472A - 一种獭兔被毛纤维细度、密度检测方法及系统 - Google Patents
一种獭兔被毛纤维细度、密度检测方法及系统 Download PDFInfo
- Publication number
- CN103234472A CN103234472A CN2013100728438A CN201310072843A CN103234472A CN 103234472 A CN103234472 A CN 103234472A CN 2013100728438 A CN2013100728438 A CN 2013100728438A CN 201310072843 A CN201310072843 A CN 201310072843A CN 103234472 A CN103234472 A CN 103234472A
- Authority
- CN
- China
- Prior art keywords
- data
- hair
- coat
- image data
- detection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Image Analysis (AREA)
Abstract
本发明提供一种獭兔被毛纤维细度、密度检测方法及检测系统,方法包括如下步骤:a、采集被毛图像数据;b、将被毛图像数据传输到计算机中存储;c、通过计算机处理软件完成检测分析。系统包括被毛图像数据采集装置、被毛图像数据存储及检测分析装置。本发明可以在活体獭兔取被毛直接检测分析獭兔毛皮质量,被毛密度、密度结果,操作方便、效率高;检测系统结构简单、方便携带,检测速度快、精度高。
Description
技术领域
本发明属于精密计量仪器技术领域,特别涉及一直包括兔毛、羊毛、貂绒、马海毛等毛皮动物毛皮质量和其他圆形截面的纺织纤维的细度测量方法及设备,广泛应用于毛皮产品、纺织品进出口和生产行业的质量管理。
背景技术
獭兔又名力克斯兔(Rex rabbit),原意为“兔中之王”。又因力克斯兔被毛平整直立,富有绚丽光泽,手感柔软、舒适,毛细密,很似珍贵毛皮兽水獭。所以,多以“獭兔”称之。獭兔是典型皮用兔。獭兔毛皮品质标准要求,概括为“短、细、密、平、美、牢”。所谓“短”,就是毛纤维短,毛纤维长度在1.3厘米~2.2厘米之间。“细”就是毛纤维直径在16微米~18微米,粗毛少。“密”就是绒毛丰厚,被毛密度在10000根~25000根/cm2。“平”就是绒毛长短一致,平整。“美”就是色调美观,有光泽。“牢”就是被毛着生牢固,不易脱落。獭兔皮毛在国际市场上销售一直被看好。
2007.04.11公告号为CN1946335的专利申请涉及一种被毛质量检测设备(100),其具有电磁辐射源(80) 和成像传感器(74),并具有辐射选择装置(83,48)。在该设备的使用过程中,该选择装置提高发射的接入到皮肤(8)、在皮肤中经由多次散射而均匀化且没有吸收,并到达该传感器(74)且提供皮肤图像的那部分辐射,与经由其它方式例如在皮肤表面反射到达传感器的那部分辐射之间比率。借助于该选择,图像的对比度可得以提高,并可以更少的依赖于皮肤颜色和皮肤伪像,从而能使检测例如浅色皮肤上的白色被毛更容易。该被毛检测设备主要用于活体毛皮动物毛皮质量的检测设备,现有獭兔被毛细度、密度检测方法,主要有人工剪毛计数法,显微镜投影法和取皮切片染色检测毛囊纤维计数法,一方面需要活体取皮、剪毛,损伤毛皮或屠宰獭兔;另一方面该检测仪器结构复杂,检测只能在实验室内操作,工作量大周期长,不便于数据处理,耗费人力物力,检测成本高,已不便于生产行业的质量管理。
发明内容
在发明内容部分中引入了一系列简化形式的概念,这将在具体实施方式部分中进一步详细说明。本发明的发明内容部分并不意味着要试图限定出所要求保护的技术方案的关键特征和必要技术特征,更不意味着试图确定所要求保护的技术方案的保护范围。
本发明目的之一是提供一种獭兔被毛纤维细度、密度检测方法,可以在活体獭兔取毛样直接检测分析,操作方便、效率高。
本发明同时提供一种獭兔被毛纤维细度、密度检测系统,其结构简单、方便携带,检测速度快、精度高。
本发明是通过如下技术方案实现的,
一种獭兔被毛细度、密度纤维检测方法,其特征在于包括如下步骤:
a、采集被毛图像数据;
b、将被毛图像数据传输到计算机中存储;
c、通过计算机处理软件完成检测分析。
根据本发明的方法,采用检测仪直接从活体獭兔身上采集被毛图像数据。
根据本发明的方法,在步骤c中采用便携式数据处理设备完成数据检测分析。
根据本发明的检测仪具体为DinoLite手持式USB数码显微镜。
獭兔被毛纤维细度、密度检测系统,其特征在于包括被毛图像数据采集装置、被毛图像数据存储及检测分析装置。
根据本发明的系统,所述图像数据采集装置为DinoLite手持式USB数码显微镜。
根据本发明的系统,所述被毛图像数据存储及检测分析装置为便携式数据处理设备。
根据本发明的系统,所述显微镜主要由CCD、凸透镜、以及照明单元构成。
根据本发明的系统,为使用更方便,所述便携式数据处理设备设置有为输入/输出接口和充电口。
本发明可以在活体獭兔取毛样直接检测分析,而且结构简单、方便携带,检测速度快、精度高,使用操作方便。具体而言,具有如下4个显著的特点:
1、快速:即测即得,图像数据分析,统计,迅速获取该只獭兔的检测数据结果,储取方便,还可事后分析,输出。
2、便携式:仪器设计为手持式,操作简便,无需交流电,适合野外,现场检测。
3、无损:直接在动物活体上进行检测,对被检测毛皮动物皮毛无损害,可多次重复测量。
4、更换不同的采样头,可对多种动物皮毛进行检测。
附图说明
图1为本发明中检测系统的结构示意图。
图2为640X480的BMP格式图像。
图3为未经处理的图片。
图4为经灰度处理后的图片。
图5为对图4所作的色阶谱图。
图6为色阶谱图示例图。
图7为图像相应位置的像素信息示意图。
图8a和图8b分别为二维适应性去噪过滤处理示例图。
图9a和图9b分别为创建预定义过滤器示例图。
图10a和10b分别为识别强度图像中的边界示例图。
图11为獭兔被毛在显微镜下呈现的无交叉示意图。
图12为獭兔被毛在显微镜下呈现的交叉或重叠示意图。
图13为从左至右的对图像进行切片操作所得示意图。
图14为数据-灰度值变化示意图。
图15为统计结果示意图。
图16为去噪算法图。
其中1为被毛图像数据采集装置、2为被毛图像数据存储及检测分析装置、3为CCD、4为凸透镜、5为照明单元、6为输入/输出接口、7为充电口。
具体实施方式
在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员来说显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。
为了彻底了解本发明,将在下列的描述中提出详细的细节,以便说明本发明是如何解决现有的通信感知评估系统的无法对网络问题区域进行收集分类等问题。显然,本发明的施行不限定于通信领域的技术人员所熟习的特殊细节。本发明的较佳实施例详细描述如下,然而除了这些详细描述外,本发明还可以具有其他实施方式。
一种獭兔被毛纤维细度、密度检测方法,其特征在于包括如下步骤:
a、采集被毛图像数据;
b、将被毛图像数据传输到计算机中存储;
c、通过计算机处理软件完成检测分析。
本发明中采用DinoLite手持式USB数码显微镜直接从活体獭兔身上采集被毛图像数据。在步骤c中采用便携式数据处理设备完成数据检测分析。
本发明同时还提供一种獭兔被毛纤维细度、密度检测系统,其特征在于包括被毛图像数据采集装置1、被毛图像数据存储及检测分析装置2。
进一步的,本发明所述图像数据采集装置为DinoLite手持式USB数码显微镜。
进一步的,本发明所述被毛图像数据存储及检测分析装置2为便携式数据处理设备。
所述DinoLite手持式USB数码显微镜主要由CCD3、凸透镜4、以及照明单元5构成。
为了使用更方便,所述便携式数据处理设备设置有为输入/输出接口6和充电口7。
獭兔被毛检测仪的软件功能大体如下: a)通过视频头采集存储獭兔被毛图像。 b)将獭兔被毛图像形成可分析计算的格式。 c)通过獭兔被毛检测要求指标设计数学模型。 d)根据獭兔被毛检测报告要求设计结果统计界面。
獭兔被毛检测仪的图像采集是通过USB2.0独立手持式显微放大视频头采集。采用Directshow技术编程对USB设备(显微放大视频头)编写该软件的图像采集部分。
图像数据分为2类:动态视频图像(avi文件),静态图像文件(bmp或jpg格式)。捕捉之后得到的这2类数据,取静态图像文件(bmp或jpg格式)作为分析数据。采用BMP格式作为最终分析数据。
采集640X480的BMP格式图像,将BMP图片从左下角开始,右上角结束,一共640X480个点。声名一个PBits[640][480]的一个RGB类的数组,每个矩阵点得到的数据都是一个RGB值,RGB类是一个由R,G,B个数据组成,分别代表该点的红R,绿G,蓝B三元色的数值。 如图2所示,可以看到能够得到的只是这640X480个点数据RGB值。由于需要处理的数据是白色或者棕色,黑色的毛发,所以需要对数据进行灰度处理。处理过程如下:
每个点的RGB灰度值经过灰度经典运算公式得到一个(0-255)的数据值,这样就得到了一个整形二维数组P[640][480]。这个数据每一个点就反映了图片每个位置的明暗程度。这个阵列数组就是后面数学建模的一个基础。下面看一下灰度处理的结果。 图3为没有经过处理的图片,图4是一个灰度处理过的图片,可以看到毛发的位置的灰度值和底色的差异。
数据模型分析处理过程
得到的只是一个P[640][480]的一个数据阵列。
处理的第一步色阶分析:
例如对上一部图作色阶分析,得到图5所示的色阶谱图。从图5可以看到色阶的一个分部,利用这个色阶可以把底色和有用数据部分分开,进而对毛发部分数据进行分析处理。当然并不是每一个图片都能进行有效处理,以图6为例, 可以看到当色阶定义为109的时候,毛发部分并不能很好的显示出来,还参杂了底色在里面。这个说明底色和毛发颜色过于接近, 或者说毛发颜色和底色交叉很严重。换句话说,例如毛发色阶在(110-130)之间,而环境色,底色(80-150)之间,这就使得有用数据无法剔除出来。因为进行的灰度处理,所以3元色变为了一元色,这个过程是数据进行了丢失,但是灰度处理是图像色阶剔除的一个最简单的方法。所以数学模型不能简单的参照灰度处理来分割,需要从3元色基础进行另外的方法建模。例如对R色,G色,B色3种颜色都进行分割处理细化。但是这里有个一很困难的问题,毛发的颜色大多为白,灰白,黑,棕,这些颜色的RGB值,接近于3等分。所以即便进行3色分割分析,实际和灰度分割效果一样。所以需要数据源能够将毛发和环境色有效的进行区分。这就要求加入底色来区分。设想底色和毛发颜色能够有效区分之后,可以得到毛发的数据坐标位置,这个坐标位置点就是对应了P[640][480]这个二维数据的阵列位置(横,列位置)。有了这些位置,再用一个有效可行的数据建模,可以测量出毛发的直径,数量,单位面积根数等结果。
毛发根数计算其实这一个过程就是所谓的数据聚集分析。
毛发的直径计算是一个数据斜率统计计算再加上几何形态计算建模分析。
4)数据模型的建立
首先,用于处理的数据的数据结构。如图7所示,整形二维数组P[640][480]包含了640*480个点,每个点的(X,Y)对应的值对应了图像相应位置的像素信息。
由于处理的图像每个点的数据已经不再是RGB值,而是灰度值,每个点的信息只有一个值。再而可以将P[640][480]看做一个矩阵阵列数据。设计模型时,有这个数据阵列为基础来设计。这里需要用到还有一个很重要的数学工具Matlab。Matlab可以进行大量的复杂数学计算。由于图像不可能完全符合数学模型处理。为了更好的建立和设计模型,需要对图像数据进行模糊,去噪处理。经过处理后的图片色阶变换更为平稳,这样的数据更有利于进行分析。
利用Matlab强大图像数据处理功能先对图像进行去噪处理: wiener2
功能:
进行二维适应性去噪过滤处理。
语法:
J = wiener2(I,[m n],noise)
[J,noise] = wiener2(I,[m n])
举例
I = imread('saturn.GIF');
J = imnoise(I,'gaussian',0,0.005);
K = wiener2(J,[5 5]);
imshow(J)
figure, imshow(K)
如图8a和图8b所示,所有的处理操作都要围绕最开始进行的图像数据格式化,数据化之后的二维数组来进行操作。有的时候獭兔被毛图像效果不是太理想,环境噪音太大的时候,还要做滤波处理等操作。
freqspace
功能:
确定二维频率响应的频率空间。
语法:
[f1,f2] = freqspace(n)
[f1,f2] = freqspace([m n])
[x1,y1] = freqspace(...,'meshgrid')
f = freqspace(N)
f = freqspace(N,'whole')
相关命令:
fsamp2, fwind1, fwind2
freqz2
功能:
计算二维频率响应。
语法:
[H,f1,f2] = freqz2(h,n1,n2)
[H,f1,f2] = freqz2(h,[n2 n1])
[H,f1,f2] = freqz2(h,f1,f2)
[H,f1,f2] = freqz2(h)
[...] = freqz2(h,...,[dx dy])
[...] = freqz2(h,...,dx)
freqz2(...)
举例
Hd = zeros(16,16);
Hd(5:12,5:12) = 1;
Hd(7:10,7:10) = 0;
h = fwind1(Hd,bartlett(16));
colormap(jet(64))
freqz2(h,[32 32]); axis ([–1 1 –1 1 0 1])
fsamp2
功能:
用频率采样法设计二维FIR过滤器。
语法:
h = fsamp2(Hd)
h = fsamp2(f1,f2,Hd,[m n])
举例
[f1,f2] = freqspace(21,'meshgrid');
Hd = ones(21);
r = sqrt(f1.^2 + f2.^2);
Hd((r<0.1)|(r>0.5)) = 0;
colormap(jet(64))
mesh(f1,f2,Hd)
相关命令:
conv2, filter2, freqspace, ftrans2, fwind1, fwind2
fspecial
功能:
创建预定义过滤器。
语法:
h = fspecial(type)
h = fspecial(type,parameters)
举例
I = imread('saturn.GIF');
h = fspecial('unsharp',0.5);
I2 = filter2(h,I)/255;
imshow(I)
figure, imshow(I2)
如图9a和图9b所示。
相关命令:
conv2, edge, filter2, fsamp2, fwind1, fwind2
ftrans2
功能:
通过频率转换设计二维FIR过滤器。
语法:
h = ftrans2(b,t)
h = ftrans2(b)
举例
colormap(jet(64))
b = remez(10,[0 0.05 0.15 0.55 0.65 1],[0 0 1 1 0 0]);
[H,w] = freqz(b,1,128,'whole');
plot(w/pi–1,fftshift(abs(H)))
相关命令:
conv2, filter2, fsamp2, fwind1, fwind2
fwind1
功能:
用一维窗口方法设计二维FIR过滤器。
语法:
h = fwind1(Hd,win)
h = fwind1(Hd,win1,win2)
h = fwind1(f1,f2,Hd,...)
举例
[f1,f2] = freqspace(21,'meshgrid');
Hd = ones(21);
r = sqrt(f1.^2 + f2.^2);
Hd((r<0.1)|(r>0.5)) = 0;
colormap(jet(64))
mesh(f1,f2,Hd)
相关命令:
conv2, filter2, fsamp2, freqspace, ftrans2, fwind2
fwind2
功能:
用二维窗口方法设计二维FIR过滤器。
语法:
h = fwind2(Hd,win)
h = fwind2(f1,f2,Hd,win)
举例
[f1,f2] = freqspace(21,'meshgrid');
Hd = ones(21);
r = sqrt(f1.^2 + f2.^2);
Hd((r<0.1)|(r>0.5)) = 0;
colormap(jet(64))
mesh(f1,f2,Hd)
相关命令:
conv2, filter2, fsamp2, freqspace, ftrans2, fwind1
经过这些复杂的操作之后图像数据已经可以用来进行分析。此时会用到一个很重要的操作,即边缘寻找。 edge
功能:
识别强度图像中的边界。
语法:
BW = edge(I,'sobel')
BW = edge(I,'sobel',thresh)
BW = edge(I,'sobel',thresh,direction)
[BW,thresh] = edge(I,'sobel',...)
BW = edge(I,'prewitt')
BW = edge(I,'prewitt',thresh)
BW = edge(I,'prewitt',thresh,direction)
[BW,thresh] = edge(I,'prewitt',...)
BW = edge(I,'roberts')
BW = edge(I,'roberts',thresh)
[BW,thresh] = edge(I,'roberts',...)
BW = edge(I,'log')
BW = edge(I,'log',thresh)
BW = edge(I,'log',thresh,sigma)
[BW,threshold] = edge(I,'log',...)
BW = edge(I,'zerocross',thresh,h)
[BW,thresh] = edge(I,'zerocross',...)
BW = edge(I,'canny')
BW = edge(I,'canny',thresh)
BW = edge(I,'canny',thresh,sigma)
[BW,threshold] = edge(I,'canny',...)
举例
I = imread('rice.GIF');
BW1 = edge(I,'prewitt');
BW2 = edge(I,'canny');
imshow(BW1);
figure, imshow(BW2)
如图10a和图10b所示。
利用VC和Matlab的接口,用VC调用Matlab内核中的大量有用的图像数据处理功能完成以上图像处理操作。最后得到的数据就是正式建立算法的原始数据。这里将他定义为PCAL[640][480] 下面将对计算数据进行建模。
首先看这个原始数据原型,当数据原型最理想的状况下如下所示:
情况一:如图11所示,所有的獭兔被毛在显微镜下呈现的是无交叉。但是这是不可能的。最理想状况下是这样
情况二:如图12所示,被毛交叉或重叠,这种情况很普片而且出现很多。
情况三:被毛图像不清晰,边缘模糊。
这种情况即便是经过了去噪,模糊,滤波,边缘识别等操作之后仍然不能很好的判别。
综上所示,即便是用复杂的人脑既人为识别,也很难辨识出,当一方面要求从獭兔被毛检测仪的结果出发,让被毛尽可能的方向一致,重叠减少。另一方面要从概率统计学的理论为依据寻早一个可行的统计方法出来。
从信号分析处理理论出发,设计出一个可行的数学模型算法,再加上概率统计学的计算可以基本上达到獭兔被毛检测的结果误差要求。
信号分析一般处理的信号都是点对点的数据,序列化的数据。假设所有的毛发都是从图像的上方向下“生长”,这种要求可以通过数据采集头的结构调整办到。那么假设所有的毛发都从图像上方向下生长,可以肯定的是,如果从左至右的对图像进行切片操作,如图13所示。
可以看到红线所经过的位置,像素点的变换可以用一个连续的序列化信号进行表示:
例如:黑,黑,黑,白,白,白,黑,黑,黑,白,白。这种序列化的数据。
当然实际的图像通过上面的操作不可能得到如此分明的数据。灰度值是从0-255,0代表极黑,255代表极白,这里给出一组序列化之后的实际数据。
从图14可以看出来实际上,从某一行的图像灰度值从左至右一共640个数据,这个数据的变化就反映了灰度值的变化。建立的数据模型,就要求识别出底色的灰度平均值,以这个值为准,定义出一根阈值线,这根阈值线的值就可以将数据被毛部分的像素位置和布什被毛部分的像素位置分类出来。这样就可以将连续的被毛值部分得到,这个连续的被毛副本的点长度就是这一个切片组里面的被毛“假直径”,最所以定义为“假直径”是因为这个直径不是和毛发生长方向所垂直,需要修正,从这里可以看出,如图15所示的一个统计结果。
如上图所示,假如在一切片组里面寻找到4组在阈值线之上的副本,那么可以看出连续的被毛颜色部分包含了4组,可以认为这个4组就是这一切片部分的毛发经过根数。如果对一幅图做N个切片,那么N个切片再经过概率统计,可以得到一个可信的毛发根数值,这个值的误差应该在统计误差之内接受。
但是这里又会出现一种情况,毛发交叉,重叠,特别是当2根或2根以上毛发重叠交叉之后,会是单一切片组里面某一个毛发组里面的数据量大大超过单一被毛通过切片组的正常像素数目。所以还要设计一个数学处理公式来将重叠毛发进行分割,分割之后单一切片组里面的毛发组数就是毛发根数。将N个切片组的毛发根数值进行,去掉最大,最小之后,叠平均之后的值就是可信的毛发根数。
至于毛发直径,需要将不同切片组的直径进行比较,设计出一个斜率组,这个斜率组代表的是,每一个毛发切片组,出现毛发集合位置的信息形成一个集合组,生成一个直线公式,这个直线公式的斜率就是毛发直径的修正值,修正之后,可以得到毛发的真直径。
这里详细说明一下数据阈值线的设计和分类统计的方法:
从上面知道,每一个切片组,实际上就是图像数据对应的每一行的数据序列。如果毛发穿过了这个列,那么只有毛发穿过的部分是毛发的颜色,其他的都是背景色,由于背景色定义为了黑色,即便是有光照干扰,也不会呈现出毛发的颜色。所以很好判别。
例如可以这样来看颜色的走向,开始是背景色,从左至右开始移动,当开始出现被毛部分是,颜色开始变浅,就是灰度值从小开始变大,当大到一定值是,就是被毛的边缘之后位置一部分的抖动,但是这种数值的抖动都在被毛颜色范围之内,之后开始慢慢离开被毛部分,当离开之后再次从大变小的变化,进入背景色部分,之后循环,需要统计的数据是,什么时候开始出现被毛,什么时候离开被毛部分,这个维持的被毛部分就是被毛的“假长度”,一共有多少组被毛出现副本,就是被毛在这一切片组上的根数。
定义这一个切片组的数组为B【640】
首先计算出数组的最大灰度值Bmax,最小灰度值Bmin,将BY=(Bmax+Bmin)/2定义为阈值线。那么可以设计如下的阈值线统计部分程序。由于会出现像素小幅抖动的问题,还要设计出一个阈值线抖动噪音处理方法,定义颜色抖动像素值不超过5,那么将BY上下5个像素的值进行量化,如果某一像素值大于BY-5,小于BY+5,那么都将这个值认为是BY-5,那么这些值始终小于BY+5,那么只要发现BY+5以上的值,才会认为像素值穿越了阈值线BY,这样就可以将小幅度抖动去掉。
数据统计结果报告的设计
统计结果报告的设计,必须按照通用分析软件的设计要求来实施。 大致需要包括如下几个内容:
1)单幅图像统计,即使点击“采集”之后,图像开始采集,之后需要对当前图像实施进行分析统计。
2)单幅图像统计之后,必须添加到备用数据库,例如:当对一只獭兔多个部位进行统计之后,需要将这些统计的若干次数据,进行整合,平均处理。
3)形成报表,直方图,便于用户观察。
4)可以对每只獭兔测量的结果进行保存,并且随时可以调入。
5)打印功能,由于利用的是最先进的UMPC嵌入式操作系统技术,所以掌上便携系统支持Windows打印功能,所以只需要接上通用的打印机,只需要编写需要的打印数据格式即可。
整个软件设计流程用到了DirectShow,GDI图像编程,利用VC++编程工具编写软件。
整个软件的实现最关键的几步是:
1、数学模型的建立
数学模型的好坏,直接影响了数据结果的可信度,重复度,甚至直接影响了能否测量出结果。
2、数据源的采集好坏
所谓数据源的好坏前面也提到过,这个过程是数据模型建立之外的最难的一步,毕竟计算机软件设计的再好,模型建立的再智能化,数据源不理想,也没法实现测量。计算机编程设计的分析功能不能和人脑相比,也许人的肉眼能够区分的东西,通过计算机并不能实现。所以要在计算机能力范围之内设计数据模型,和收集采集处理数据源。
3.最理想的数据源
最理想的数据源是底色和毛发颜色色阶分别明显,交叉部分少。这些都要求摄像头的清晰,底色(环境干扰)等各种因素的处理。毛发交叉的问题可以解决,这些都可以通过有效数据范围来进行分析处理。
数据模型的是整个软件设计的关键,用到的分析方法包括图像灰度,腐蚀,滤波等方法,这些方法都是排除环境色干扰的有效方法,至于毛发直径,根数统计这些涉及到聚集统计,几何学,统计学,概率统计(可信度)等分析。
到此为止已经得到了獭兔毛发的直径和獭兔毛发的根数的结果值,但是这些数值还是不可信的,因为这样的数据结果还没有进行数据校验,没有进行数据后期处理。因为算法是死的,信号(采集的图像)是千变万化的,得到的结果也有真值,假值。
所谓真值,就是处于有效数据范围之内的,例如一根獭兔的毛发直径不可能小到1um,也不可能大到100乃至200多um,所以数据还需要进行校验。需要设计一个理想的处理模块来排除假值,留下真值。
第一步,对阈值线分割得到毛发直径的算法进行改进。进行处理的数据都是一个串数组,简单来说就是一串数,640个整数(范围在0~255)。通过信号处理数学方法,设计了一个计算直径的算法。(MAX+MIN)/2作为阈值线的值,有时可能出错,假如MAX或者MIN偏差特别大,这样会导致阈值线望极大或者极小偏向过大,导致直径计算结果偏大,偏小。因此,设计的模型如下:
1.计算出最大值MAX,最小值MIN。
2.去掉MAX,MIN对应的数值,回到步骤1,将留下的数据在进行去除最大,最小,如此循环5次之后,直到上一轮去掉的MAX和下一轮去掉的MAX相差不到5以内即可。
3.剩下的数据串将是最后计算的数组。计算数据串的平均值,将这个平均值作为阈值线。
4.添加噪音去除算法。
所谓去噪算法:例如,数据出现图16所示情况。
可以看到图中过阈值线第一次的位置有个小噪音,如果不加判断,将会导致噪音部分出现一个很小的直径值,这个将直接导致结果数据不可用。图像数据极为丰富,而且受环境影响很大,所以必须加以排除。
排除算法如下,阈值线V,设计阈值线V1,阈值线V2,V1=V-T,V2=V+T。T的大小根据人为需要,如果需要排除的噪音范围大点,T就大点,需要排除的噪音范围小点,T就小点。然后判断的时候这样计算: 上升边数据值前一点R1,后一点R2,如果R1<=V1且R2>=V2,这样的结果才算是真的穿越了阈值线,否则将R2设为下一次判断的R1=V1。同理下降边数据值前一点R1,后一点R2,如果R1>=V2且R2<=V1,这样的结果才算是真的穿越了阈值线,否则将R2设为下一次判断的R1=V2。 一个完整上升和一个完整的下降就是一个直径的范围点的索引差值。这个差值就是直径所占的像素个数,个数即可换算为直径。
得到一幅图的毛发直径数据串,大约至少应该有30组,将这30组数据的数组长度分别罗列出来,排除最大个数的5组,最小个数的5组,剩下20组作为数据计算。
20组数据就是20组直径值,每组数组的个数,就是每组数据计算出的直径个数,也就是毛发的根数。其中个数比较小的肯定是毛发在图像上粘连的部分,这样才会导致毛发根减小。设计如下算法排除:
1.将每组数据进行排查,毛发直径经过比例换算之后【(数值×屏幕实际实现宽度)/640】大于40以上的除2,生成2个新的数值,小于10的直接排除掉,放入备份数组,所谓备份数组就是假值表,这些假值已然要放入统计结果数组里面。
2.计算每组数据根数值,将相同根数的数组进行归类。例如20根5组,21根6组,22根7组……
3.将拥有最多相同根数的数组的根数作为毛发基本根数M,然后将比M大2以内,小2以内的数组,去掉最小或者最大的毛发值,将数组根数放到和基本毛发根数一样的M之后,也归到最多相同根数数组里面。例如:20根5组,21根6组,22根7组,25根2组。那么25根的那2组去掉。21根的每组数据去掉一个最小值归为20根组里,22根的每组数据去掉一个最小值也归为20根组里,这样20根的组数为18组。那么将这18组数据依次从1-20根,相互叠加起来再除去组数,得到实际的每根毛发的直径平均值。 G[18][20];实际上最后得到的就是这样一个二维数组。 for(I=0,I<20,I++) { for(j=0;j<18;j++) { AVG[I]=AVG+G[j][I]; } AVG[I]=AVG[I]/18; }
可以得到如下一个18个元素的数组AVG[18],那么毛发根数18根,数组值对应的就是毛发直径。
这个数组就是最后得到的真值数据,填入列表进入后期分析。
本发明已经通过上述实施例进行了说明,但应当理解的是,上述实施例只是用于举例和说明的目的,而非意在将本发明限制于所描述的实施例范围内。此外本领域技术人员可以理解的是,本发明并不局限于上述实施例,根据本发明的教导还可以做出更多种的变型和修改,这些变型和修改均落在本发明所要求保护的范围以内。本发明的保护范围由附属的权利要求书及其等效范围所界定。
Claims (9)
1.一种獭兔被毛纤维细度、密度检测方法,其特征在于包括如下步骤:
a、采集被毛图像数据;
b、将被毛图像数据传输到计算机中存储;
c、通过计算机处理软件完成检测分析。
2.根据权利要求1所述的方法,其特征在于采用检测仪直接从活体獭兔身上采集被毛图像数据。
3.根据权利要求1所述的方法,其特征在于在步骤c中采用便携式数据处理设备完成数据检测分析。
4.根据权利要求2所述的检测仪为DinoLite手持式USB数码显微镜。
5.獭兔被毛纤维细度、密度检测系统,其特征在于包括被毛图像数据采集装置(1)、被毛图像数据存储及检测分析装置(2)。
6.根据权利要求5所述的系统,其特征在于所述图像数据采集装置为(1)DinoLite手持式USB数码显微镜。
7.根据权利要求5所述的系统,其特征在于所述被毛图像数据存储及检测分析装置(2)为便携式数据处理设备。
8.根据权利要求6所述的系统,其特征在于所述显微镜主要由CCD(3)、凸透镜(4)、以及照明单元(5)构成。
9.根据权利要求7所述的系统,其特征在于所述便携式数据处理设备设置有为输入/输出接口(6)和充电口(7)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100728438A CN103234472A (zh) | 2013-03-07 | 2013-03-07 | 一种獭兔被毛纤维细度、密度检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013100728438A CN103234472A (zh) | 2013-03-07 | 2013-03-07 | 一种獭兔被毛纤维细度、密度检测方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103234472A true CN103234472A (zh) | 2013-08-07 |
Family
ID=48882524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013100728438A Pending CN103234472A (zh) | 2013-03-07 | 2013-03-07 | 一种獭兔被毛纤维细度、密度检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103234472A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106091956A (zh) * | 2016-04-21 | 2016-11-09 | 克拉玛依市白碱滩区林牧生态研究院 | 一种动物纤维细度长度快速检测方法及系统 |
CN106091955A (zh) * | 2016-04-21 | 2016-11-09 | 克拉玛依市白碱滩区林牧生态研究院 | 一种动物纤维细度快速检测方法 |
CN109544627A (zh) * | 2018-11-22 | 2019-03-29 | 深圳市吉斯迪科技有限公司 | 一种智能毛发分析装置与分析方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6032071A (en) * | 1994-12-01 | 2000-02-29 | Norbert Artner | Skin examination device |
CN1451944A (zh) * | 2003-05-09 | 2003-10-29 | 河北圣奥达科技开发有限公司 | 一种测量纺织纤维长度的方法 |
JP2005205213A (ja) * | 2004-01-20 | 2005-08-04 | Siemens Ag | 被検査者の皮膚検査方法および装置 |
CN1793844A (zh) * | 2005-11-30 | 2006-06-28 | 江苏科技大学 | 纺织品色牢度色差评级测试方法和装置 |
WO2010044650A1 (es) * | 2008-10-16 | 2010-04-22 | Pardo Guzman Dino Alejandro | Dispositivo móvil y método de clasificación universal interactivo para carnes por visión artificial |
CN101893557A (zh) * | 2009-05-20 | 2010-11-24 | 中国农业科学院兰州畜牧与兽药研究所 | 动物毛皮种类的快速无损鉴别方法 |
CN102288607A (zh) * | 2011-06-20 | 2011-12-21 | 江南大学 | 基于数码显微镜的机织物密度检测仪 |
-
2013
- 2013-03-07 CN CN2013100728438A patent/CN103234472A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6032071A (en) * | 1994-12-01 | 2000-02-29 | Norbert Artner | Skin examination device |
CN1451944A (zh) * | 2003-05-09 | 2003-10-29 | 河北圣奥达科技开发有限公司 | 一种测量纺织纤维长度的方法 |
JP2005205213A (ja) * | 2004-01-20 | 2005-08-04 | Siemens Ag | 被検査者の皮膚検査方法および装置 |
CN1793844A (zh) * | 2005-11-30 | 2006-06-28 | 江苏科技大学 | 纺织品色牢度色差评级测试方法和装置 |
WO2010044650A1 (es) * | 2008-10-16 | 2010-04-22 | Pardo Guzman Dino Alejandro | Dispositivo móvil y método de clasificación universal interactivo para carnes por visión artificial |
CN101893557A (zh) * | 2009-05-20 | 2010-11-24 | 中国农业科学院兰州畜牧与兽药研究所 | 动物毛皮种类的快速无损鉴别方法 |
CN102288607A (zh) * | 2011-06-20 | 2011-12-21 | 江南大学 | 基于数码显微镜的机织物密度检测仪 |
Non-Patent Citations (1)
Title |
---|
陈芸莹: "便携式獭兔被毛测试仪的研制与开发", 《硕士学位论文》, 15 January 2012 (2012-01-15) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106091956A (zh) * | 2016-04-21 | 2016-11-09 | 克拉玛依市白碱滩区林牧生态研究院 | 一种动物纤维细度长度快速检测方法及系统 |
CN106091955A (zh) * | 2016-04-21 | 2016-11-09 | 克拉玛依市白碱滩区林牧生态研究院 | 一种动物纤维细度快速检测方法 |
CN109544627A (zh) * | 2018-11-22 | 2019-03-29 | 深圳市吉斯迪科技有限公司 | 一种智能毛发分析装置与分析方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109961426B (zh) | 一种人脸皮肤肤质的检测方法 | |
JP2021166062A (ja) | 顕微鏡スライド画像のための焦点重み付き機械学習分類器誤り予測 | |
JP6110992B2 (ja) | 画像適応的な生理学的に妥当な色分離 | |
US8600143B1 (en) | Method and system for hierarchical tissue analysis and classification | |
CN101739570B (zh) | 棉花异性纤维在线分类方法和系统 | |
CN100595370C (zh) | 一种非织造布孔隙率测量方法 | |
CN112215790A (zh) | 基于深度学习的ki67指数分析方法 | |
CN107066829A (zh) | 基于云计算的病理分析系统及方法 | |
CN104000593B (zh) | 一种测试皮肤的方法 | |
Behera | Image-processing in textiles | |
JP2022506135A (ja) | ヒトの寄与を組み込む反復的深層学習フローを使用した顕微鏡画像内の3d細胞間構造のセグメント化 | |
CN113129281B (zh) | 一种基于深度学习的小麦茎秆截面参数检测方法 | |
CN110647876B (zh) | 一种血涂片全视野智能分析方法 | |
CN111160451A (zh) | 一种柔性材料检测方法及其储存介质 | |
CN105023272A (zh) | 农作物叶子虫害检测方法和系统 | |
JP4383352B2 (ja) | 核多形性の組織学的評価 | |
CN118505693B (zh) | 基于计算机视觉的全息印刷质量检测方法及系统 | |
Schnepf et al. | A practical primer for image-based particle measurements in microplastic research | |
CN115184283A (zh) | 一种中药饮片的智能筛选方法及系统 | |
CN109829879B (zh) | 维管束的检测方法及装置 | |
CN118351100A (zh) | 一种基于深度学习与梯度分析的图像清晰度检测与处理方法 | |
CN103234472A (zh) | 一种獭兔被毛纤维细度、密度检测方法及系统 | |
CN105046265A (zh) | 基于纹理差异的虹膜图像肠环区域检测方法 | |
CN112837271B (zh) | 一种甜瓜种质资源性状提取方法及系统 | |
CN118014443B (zh) | 一种药品的监测方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130807 |