当前位置:
文档之家› 织物密度测量MATLAB实现
织物密度测量MATLAB实现
的能力; 3、 尝试所学的内容解决实际工程问题,培养学生的工程实践能力。
1.2 课程设计的要求
运用数字图像处理技术,完成一款织物密度测量器的设计。要求实现以下 功能: 1、 能够读取和存储图像,对图像进行去噪和对比度增强; 2、 对任意指定的距离范围内的织物进行自动经纬纱根数计数; 3、 设计软件界面。
图 3 中值滤波后图像
5. 对滤波后的图像进行直方图规定化处理 global imag_filter; global imag_match; set(handles.radiobutton3,'value',0);
-4-
哈尔滨工业大学(威海)课程设计报告
set(handles.radiobutton4,'enable','off'); set(handles.radiobutton5,'enable','on'); hgram=0:255; imag_match=histeq(imag_filter,hgram); axes(handles.axes1); imshow(imag_match); title('直方图规定化图像')
图 2 灰度处理图像
4. 对灰度处理后的图像进行滤波 global imag_gray; global imag_filter; imag_filter=medfilt2(imag_gray,[6,6]);%采用 6*6 模板 axes(handles.axes1); imshow(imag_filter); title('中值滤波后图像')
图 1 原始图像
2. 旋转图像 %将图像位置调整 degree=str2num(get(handles.edit_Degree,'String')); global imag_org; imag_org=imrotate(imag_org,degree); axes(handles.axes1); imshow(imag_org); title('旋转后图像')
四. 课程设计总结 .....................................................................................................12 五. 设计体会 .............................................................................................................13 六. 参考文献 .............................................................................................................14
-6-
哈尔滨工业大学(威海)课程设计报告
for i=200:300
flag1=1;
if(bw(i,1)==1&&bw(i-1,1)==0)
for j=1:20
if(bw(i+j,1)==1)
flag1=flag1+1;
else
break
end
end
if(flag1>=7)
%白色积累超过 7 个像素点,认为找到白横线
-1-
哈尔滨工业大学(威海)课程设计报告
二. 课程设计原理及设计方案
2.1 织物密度测量概述
在织物单位长度中排列的经纬纱根数,称为织物的经纬纱密度。 织物密度的计算单位以公制计,是指 10cm 内经纬纱排列的根数。密度的 大小,直接影响织物的外观,手感,厚度,强力,抗折性,透气性,耐磨性和 保暖性能等物理机械指标,同时他也关系到产品的成本和生产效率的大小。经 纬密度的测定方法可以采用直接测数法。 直接测数法是凭借照布镜或织物密度分析镜来完成。织物密度分析镜的刻 度尺长度为 5cm,在分析镜头下面,一块长条形玻璃片上刻有一条红线,在分 析织物密度时,移动镜头,将玻璃片上红线和刻度尺上红线同时对准某两根纱 线之间,以此为起点,边移动镜头边数纱线根数,直到 5cm 刻度线为此。 输出之纱线根数乘以 2,即为 10cm 织物的密度值。在点数纱线根数时, 要以两根纱线之间的中央为起点,若数到终点时,超过 0.5 根,而不足一根时, 应按 0.75 根算;若不足 0.5 根时,则按 0.25 根算。织物密度一般应测得 3-4 个 数据,然后取其算术平均值为测定结果。
图 4 直方图规定化后图像
6. 对直方图规定化后的图像进行二值化处理 global imag_match; global imag_bi; imag_bi=(imag_match>200);%%二值化,白色为 1,黑色为 0 imshow(imag_bi); title('二值化后图像')
图 5 二值化后图像
2.2 织物密度测量在 MATLAB 上的实现
借助 matlab 强大的数值运算功能,可以延伸到对图像的处理。利用多媒 体设备,可以很容易得到织物的样本图像。 1、 首先为了方便接下的处理和便于分析对有用的信息,对采集到的彩色图像
进行灰度处理。 2、 由于样本中往往有很多噪声,即用户不需要的干扰信息,首先要进行去噪
三. 课程设计的步骤和结果 .......................................................................................3 3.1 对织物样本进行预处理 ...............................................................................3 3.2 织物密度测量 ...............................................................................................6 3.3 GUI 界面实现 ..............................................................................................10 3.4 测量结果分析 .............................................................................................11
stri_begin=i+j-1; %记录下白线结束位置
point_begin=i; %记录下白线开始位置
break
end
end
end
%%%%%%%%%%%%%%%%跟踪白线%%%%%%%%%%%%%%%
i=point_begin;
m=stri_begin;
for j=1:width1-1 %从检测到横线开始进行列像素点判断
二. 课程设计原理及设计方案 ...................................................................................2 2.1 织物密度测量概述 .......................................................................................2 2.2 织物密度测量在 MATLAB 上的实现 ........................................................2
-2-
哈尔滨工业大学(威海)课程设计报告
三. 课程设计的步骤和结果
3.1 对织物样本进行预处理
1. 打开样本图像文件 clc; global imag_org; global filename; imag_org=imread(filename); %%读取源图像 axes(handles.axes1); imshow(imag_org); title('原始图像')
处理。这一步可以用滤波来实现,本设计中,使用 6*6 的模板对原图像进 行中值滤波。 3、 为了突出用户需要的信息,比如本例中的织物边缘,可以进行图像增强处 理,这里采用直方图规定化这一方式。 4、 接下来对图像增强处理后的图像进行二值化处理,方便最后的条纹检测。 5、 有了上面的预处理,最后一步进行织物垂直、水平根数的确定。
%%%%%%%%%%%%%%%%%上边界%%%%%%%%%%%%%%%
if(bw(i,j+1)==1) %横白线的下一个像素点是否为 1
数字图像处理
课程设计报告
课设题目: 织物密度测量 学 院: 专 业: 班 级: 姓 名: 学 号: 指导教师:
哈尔滨工业大学(威海)
年
月日
目录
一. 课程设计任务 .......................................................................................................1 1.1 课程设计的目的 .........................................................................................1 1.2 课程设计的要求 .........................................................................................1
3. 对样本图像文件进行灰度处理 global imag_org; global imag_gray; imag_gray=rgb2gray(imag_org);