大作业数字图像处理
数字图像处理大作业
1、下图是一用于干涉原理进行测试的干涉场图像,要求判读条纹的间距,请给出图像处理的方案并说明每一步的作用及其对其它处理步骤可能产生的影响。
解:步骤与思路:○1.进行模糊处理,消除噪声○2.边缘检测,进行图像增强处理○3.二值化图像,再进行边缘检测,能够得到很清晰的边界。
○4.采用横向标号法,根据值为1像素在标号中的相邻位置可以确定间距I=imread('xz mjt.bmp');I1=medfilt2(I); %对图像中值滤波imshow(I1);[m,n]=size(I1);for i=1:mfor j=1:nif(I1(i,j)<100) %阈值为100I1(i,j)=255;elseI1(i,j)=0; %进行二值化endendendfigure;imshow(I1);Y1=zeros(1,25);y2=y1;c=y2;i=100;for j=1:1200if (I1(i,j)==255&&I1(i,j+1)==0)Y1=j+1;endif (I1(i,j)==0&&I1(i,j+1)==255)Y2=j;endendfor i=1:25c=Y2(i)-Y1(i)endc %找出每两个条纹之间的距离2. 现有8个待编码的符号m0,……,m7,它们的概率分别为0.11,0.02,0.08,0.04,0.39,0.05,0.06,0.25,利用哈夫曼编码求出这一组符号的编码并画出哈夫曼树。
3. 请以图像分割方法为主题,结合具体处理实例,采用期刊论文格式,撰写一篇小论文。
各种算子对图像进行边缘检测效果的研究图像分割是根据需要将图像划分为有意义的若干区域或部分的图像处理技术。
通过边缘检测在Matlab中实现方法,及用四叉数分解函数进行区域分割的方法,掌握了Matlab区域操作函数的使用和图像分析和理解的基本方法,并学到了'roberts','sobel','prewitt','canny','log'算子对图像进行边缘检测的不同效果。
《数字图像处理》期末大作业(1)
《数字图像处理》期末大作业大作业题目及要求:一、题目:本门课程的考核以作品形式进行。
作品必须用Matlab完成。
并提交相关文档。
二、作品要求:1、用Matlab设计实现图形化界面,调用后台函数完成设计,函数可以调用Matlab工具箱中的函数,也可以自己编写函数。
设计完成后,点击GUI图形界面上的菜单或者按钮,进行必要的交互式操作后,最终能显示运行结果。
2、要求实现以下功能:每个功能的演示窗口标题必须体现完成该功能的小组成员的学号和姓名。
1)对于打开的图像可以显示其灰度直方图,实现直方图均衡化。
2)实现灰度图像的对比度增强,要求实现线性变换和非线性变换(包括对数变换和指数变换)。
3)实现图像的缩放变换、旋转变换等。
4)图像加噪(用输入参数控制不同噪声),然后使用空域和频域进行滤波处理。
5)采用robert算子,prewitt算子,sobel算子,拉普拉斯算子对图像进行边缘提取。
6)读入两幅图像,一幅为背景图像,一幅为含有目标的图像,应用所学的知识提取出目标。
3、认真完成期末大作业报告的撰写,对各个算法的原理和实验结果务必进行仔细分析讨论。
报告采用A4纸打印并装订成册。
附录:报告模板《数字图像处理》期末大作业班级:计算机小组编号:第9组组长:王迪小组成员:吴佳达浙江万里学院计算机与信息学院2014年12月目录(自动生成)1 绘制灰度直方图,实现直方图均衡化 (5)1.1 算法原理 (5)1.2 算法设计 (5)1.3 实验结果及对比分析 (5)2 灰度图像的对比度增强 (5)2.1 算法原理 (5)2.2 算法设计 (5)2.3 实验结果及分析 (5)3 图像的几何变换 (5)3.1 算法原理 (5)3.2 算法设计 (5)3.3 实验结果及分析 (5)4 图像加噪(用输入参数控制不同噪声),然后使用空域和频域进行滤波处理 (5)4.1 算法原理 (5)4.2 算法设计 (6)4.3 实验结果及分析 (6)5 采用robert,prewitt,sobel,拉普拉斯算子对图像进行边缘提取 (6)5.1 算法原理 (6)5.2 算法设计 (6)5.3 实验结果及分析 (6)6 读入两幅图像,一幅为背景图像,一幅为含有目标的图像,应用所学的知识提取出目标 (6)6.1 算法原理 (6)6.2 算法设计 (6)6.3 实验结果及分析 (6)7 小结(感受和体会) (6)1 绘制灰度直方图,实现直方图均衡化1.1 算法原理图像增强是指按特定的需要突出一幅图像中的某些信息,同时,消弱或去除某些不需要的信息的处理方法。
数字图像处理大作业报告
数字图像处理实验报告实验选题:选题二组员:学号:班级:指导老师:实验日期:2019年5月22日一、实验目的及原理1.识别出芯片的引脚2.熟悉并掌握opencv的某些函数的功能和使用方法原理:通过滤波、形态学操作得到二值图,再在二值图中设置条件识别引脚部分。
二、实现方案对图片滤波、调节阈值做边缘检测过滤掉一部分图片中干扰元素;然后通过膨胀、腐蚀操作来减少引脚的空心部分;再通过findContours()函数找到引脚的边缘并得到轮廓的点集,设置特定的长宽比和矩形面积识别引脚部分。
三、实验结果四、源码#include<iostream>#include<cmath>#include"opencv2/highgui/highgui.hpp"#include"opencv2/imgproc/imgproc.hpp"using namespace std;using namespace cv;int main(int argv, char **argc){//载入图片Mat srtImag = imread("2.jpg");Mat G_blur = srtImag.clone();//降噪blur(G_blur, G_blur, Size(5, 5));//imshow("降噪", G_blur);//Canny边缘检测Mat Canny_Imag = G_blur;Canny_Imag = Canny_Imag > 176;Canny(G_blur, Canny_Imag, 300, 50, 3);//imshow("边缘检测", Canny_Imag);//膨胀Mat element = getStructuringElement(MORPH_RECT, Size(10, 10));dilate(Canny_Imag, Canny_Imag, element);//imshow("膨胀", Canny_Imag);//腐蚀Mat element_1 = getStructuringElement(MORPH_RECT, Size(11, 11));erode(Canny_Imag, Canny_Imag, element_1);//imshow("腐蚀", Canny_Imag);//查找轮廓vector<vector<Point>>contours;vector<Vec4i>hierarchy;findContours(Canny_Imag, contours, hierarchy, RETR_CCOMP, CHAIN_APPROX_SIMPLE);vector<vector<Point>> contour_s(contours.size());//该数组共有contours.size()个轮廓的点集vector<Rect> Rec_s(contours.size());//逼近多边形的点集数组//获得每个轮廓点集的逼近多边形的点集for (size_t i = 0; i < contours.size(); i++) {approxPolyDP(Mat(contours[i]), contour_s[i], 3,false);//contour_s存储逼近多边形的点集Rec_s[i]= boundingRect(contour_s[i]); //Rec_s存储最小包围矩形的点集}//筛选合适长宽比的矩形并将其画出来Mat result_Imag = srtImag.clone();for (size_t j = 0; j < contours.size(); j++) {double as_ra;//长宽比as_ra = Rec_s[j].height / Rec_s[j].width;if (as_ra > 3.3 && as_ra < 9.3 && Rec_s[j].area() > 20) { rectangle(result_Imag, Rec_s[j], Scalar(0, 255, 255), 2, 7);}}imshow("result", result_Imag);waitKey(0);return 0;}五、总结经过这次实验,我熟悉了对blur()、Canny()、dilate()、erode()、findContours()、approxPolyDP()等函数的使用,了解了Rect类的构成等。
(完整版)数字图像处理大作业
数字图像处理1.图像工程的三个层次是指哪三个层次?各个层次对应的输入、输出对象分别是什么?①图像处理特点:输入是图像,输出也是图像,即图像之间进行的变换。
②图像分割特点:输入是图像,输出是数据。
③图像识别特点:以客观世界为中心,借助知识、经验等来把握整个客观世界。
“输入是数据,输出是理解。
2.常用的颜色模型有哪些(列举三种以上)?并分别说明颜色模型各分量代表的意义。
①RGB(红、绿、蓝)模型②CMY(青、品红、黄)模型③HSI(色调、饱和度、亮度)模型3.什么是图像的采样?什么是图像的量化?1.采样采样的实质就是要用多少点来描述一幅图像,采样结果质量的高低就是用前面所说的图像分辨率来衡量。
简单来讲,对二维空间上连续的图像在水平和垂直方向上等间距地分割成矩形网状结构,所形成的微小方格称为像素点。
一副图像就被采样成有限个像素点构成的集合。
例如:一副640*480分辨率的图像,表示这幅图像是由640*480=307200个像素点组成。
2.量化量化是指要使用多大范围的数值来表示图像采样之后的每一个点。
量化的结果是图像能够容纳的颜色总数,它反映了采样的质量。
针对数字图像而言:采样决定了图像的空间分辨率,换句话说,空间分辨率是图像中可分辨的最小细节。
量化决定了图像的灰度级,即指在灰度级别中可分辨的最小变化。
数字图像处理(第三次课)调用图像格式转换函数实现彩色图像、灰度图像、二值图像、索引图像之间的转换。
图像的类型转换:对于索引图像进行滤波时,必须把它转换为RGB图像,否则对图像的下标进行滤波,得到的结果是毫无意义的;2.用MATLAB完成灰度图像直方图统计代码设计。
6789101112131415161718192021222324252627282930title('lady-lenna');if isrgb(a);b=rgb2gray(a);%RGB转换为灰度图像endsubplot(2,2,2);imshow(b);%显示图像title('ladygaga-lenna');[m,n]=size(a);%返回图像大小e=zeros(1,256);for k=0:255for i=1:mfor j=1:nif a(i,j)==ke(k+1)=e(k+1)+1;%灰度值相同的进行累加endendendendsubplot(2,2,4);bar(e);%画图像的灰度直方图title('灰度直方图');c=imrotate(a,20);%图像的旋转subplot(2,2,3);imshow(c);数字图像处理(第四次课)编写matlab函数,实现在医学图像中数字减影血管造影。
数字图像处理大作业(DOC)
大作业指导书题目:数字图像处理院(系):物联网工程学院专业: 计算机班级:计算机1401-1406指导老师:学号:姓名:设计时间: 2016-2017学年 1学期摘要 (3)一、简介 (3)二、斑点数据模型.参数估计与解释 (4)三、水平集框架 (5)1.能量泛函映射 (5)2.水平集传播模型 (6)3.随机评估方法 (7)四、实验结果 (8)五、总结 (11)基于水平集方法和G0模型的SAR图像分割Abstract(摘要)这篇文章提出了一种分割SAR图像的方法,探索利用SAR数据中的统计特性将图像分区域。
我们假设为SAR图像分割分配参数,并与水平集模型相结合。
分布属于G分布中的一种,处于数据建模的目的,它们已经成功的被用于振幅SAR图像中不同区域的建模。
这种统计数据模型是驱动能量泛函执行区域映射的基础,被引用到水平集传播数值方案中,将SAR 图像分为均匀、异构和极其异构区域。
此外,我们引入了一个基于随机距离和模型的评估过程,用于量化我们方法的鲁棒性和准确性。
实验结果表明,我们的算法对合成和真实SAR 数据都具有准确性。
+简介1、Induction(简介)合成孔径雷达系统是一种成像装置,采用相干照明比如激光和超声波,并会受到斑点噪声的影响。
在SAR图像处理过程中,返回的是斑点噪声和雷达切面建模在一起的结果。
这个积性模型(文献[1])因包含大量的真实SAR数据,并且在获取过程中斑点噪声被建模为固有的一部分而被广泛应用。
因此,SAR图像应用区域边界和目标检测变得更加困难,可能需要斑点去除。
因此,斑点去除是必需的,有效的方法可以在文献[2][3][4][5][6][7][8][9][10]中找到。
对于SAR图像分割,水平集方法构成一类基于哈密顿-雅克比公式的重要算法。
水平集方法允许有效的分割标准公式,从文献[12]中讨论的传播函数项可以得到。
经典方法有着昂贵的计算成本,但现在的水平集的实现配置了有趣的低成本的替换。
数字图像处理大作业
[HW5][24]SA11009045_张海滨大作业1、行模糊、锐化、和直方图均衡化。
程序:I=imread('E:\研一\数字图像处理\作业\HW5\DSC00003.JPG'); figure,imshow(I),title('原始图像');I1=rgb2gray(I);I1=imresize(I1,0.5);figure,imshow(I1),title('灰度图像');h=ones(5,5)/25;I2=imfilter(I1,h);figure,imshow(I2),title('模糊处理');J=double(I1);h1=fspecial('laplacian');I3=filter2(h1,J);figure,imshow(I3),title('锐化处理');I4 = histeq(I1,256);figure,imhist(I1),title('原图像直方图');figure,imshow(I4),title('均衡化处理');figure,imhist(I4),title('均衡化后直方图');进行运算的结果为:原始图像此为进行处理的原始图像。
进行图像灰度化并把图像的大小进行调整为原来的一半,得到图像:对图像分别进行均值滤波器模糊、拉普拉斯算子锐化处理,得到的结果如下图:方图如下所示。
2、边缘检测,程序:I=imread('F:\研一\数字图像处理\作业\HW5\DSC00003.JPG'); I1=rgb2gray(I);I1=imresize(I1,0.5);J=double(I1);H=[0 1 0;1 -4 1;0 1 0];J=conv2(J,H,'same');J=I1-J;subplot(1,2,1);imshow(I1),title('灰度图像');subplot(1,2,2);imshow(J),title('Laplace算子边缘检测');G1 = [-1 -2 -1;0 0 0;1 2 1];G2 = G1';Iedge=I1;I2x = filter2(G1,Iedge);I2y = filter2(G2,Iedge);I2=abs(I2x+I2y);I22 = mat2gray(I2);figure,imshow(mat2gray(abs(I2x))),title('水平方向边缘')figure,imshow(mat2gray(abs(I2y))),title('垂直方向边缘')figure,imshow(I22),title('合成边缘')IFB=im2bw(I22,0.08);figure,imshow(IFB),title('合成边缘二值图像')[m n]=size(I22);I2_edge=I22;for i=1:mfor j=1:nif I2_edge(i,j)>0.15I2_edge(i,j)=1;else if I2_edge(i,j)>0.06I2_edge(i,j)=0.5;endendendendfigure,imshow(I2_edge),title('边缘增强后的图像');可以得到Laplace 算子处理得到的边缘:灰度图像Laplace 算子边缘检测利用Sobel算子获得的图像的水平和垂直边缘。
数字图像处理大作业
数字图像处理大作业通信工程组员:110421305刘继鹏110421323王剑锋110421327赵志力一.题目选择一组图像,根据直方图的定义,自己编写程序(不能用imhist函数),完成直方图的显示。
灰度图像显示用一个直方图。
二.灰度图像的定义灰度直方图是灰度级的函数,描述的是图像中该灰度级的像素个数或该灰度级像素出现的频率。
即:横坐标表示灰度级,纵坐标表示图像中该灰度级出现的个数或该灰度级像素出现的频率,这个关系图就是灰度直方图。
它反映了图像灰度分布的情况。
三.方案设计根据图像在存储时是用矩阵的形式存储的,每个矩阵中的数都有相应的灰度级对应,这样通过FOR循环查找出相同点灰度级的个数进行累加,再通过stem函数(绘制二维离散序列的火柴杆图)在坐标系中进行绘图四.算法流程图四.程序源码I=imread('coins.png');x=0:255;[m,n]=size(I);A=zeros(1,256);for k=1:m;for i=1:n;for b=0:255;if I(k,i)==b;开始读取图片建立矩阵For循环查找像素点并累加在坐标系中显示结束A(b+1)=A(b+1)+1;endendendendy=A;figure,stem(x,y);五.运行结果六.设计总结此次课程设计要求我们matlab软件设计计算一幅图像中像素值在各个灰度级出现的概率,即图像的直方图的程序(不能用matlab 提供的库函数),对给定图像计算直方图,并显示直方图图形。
虽然不能使用matlab软件中自带的库函数,但是我们可以掌握其原理,编写程序将库函数过程化,即编写程序代替库函数并实现同样的功能。
拿到一副图片,如果不是灰度图片的话,很难检测其灰度值,因此必须利用rgb2gray函数将其变换成灰度图片。
数字图像处理大作业
图像处理技术大作业院(系):物联网工程学院专业: 计算机科学与技术班级:学号:姓名:摘要图像分割就是指把图像分成各具特性的区域并提取出感兴趣目标的技术和过程。
它是图像处理、模式识别和人工智能等多个领域中的重要课题,也是计算机视觉技术中首要的、重要的关键步骤。
图像分割的应用非常广泛,几乎出现在有关图像处理的所有领域。
因此,从世纪年代以来,图像分割一直都是图像技术中的研究热点。
由于图像分割的好坏直接关系到后续工作的研究进展,广大研究学者们提出了许多既经典又有效的分割算法。
但随着数字图像技术的发展和应用领域的拓宽,一些经典的图像分割算法已不能应用于新的领域。
因此,新的图像分割算法成为迫切之需并在这样的大背景下应运而生。
尽管有许多新的图像分割算法已被提出,但对于图像分割算法的研究仍然是图像分割领域中的一个热点与难点,对广大学者们更是一个巨大的挑战。
本文所做工作主要包括以下三个方面:(1)图像分割目标和研究现状。
(2)图像分割方法总结。
(3)水平集方法程序实现和实验结果。
关键词:图像分割活动轮廓模型算法图像分辨率水平集方法图像分割的目标图像分割是图像分析的第一步,是计算机视觉的基础,是图像理解的重要组成部分,也是图像处理、模式识别和人工智能等多个领域中一个十分重要且又十分困难的问题。
所谓图像分割就是要将图像表示为物理上有意义的连通区域的集合,也就是根据目标与背景的先验知识,对图像中的目标、背景进行标记、定位,然后将目标从背景或其他伪目标中分离出来。
由于这些被分割的区域在某些特性上相近,因而图像分割常用于模式识别与图像理解以及图像压缩与编码两大类不同的应用目的门。
由分割产生的区域是图像内容的一种表示,它是对图像进行视觉分析和模式识别的基本前提,分割结果的质量直接影响到以后的图像分析、识别和解释的质量,具有重要的意义。
图像分割的目的在于根据某些特征如灰度级、频谱、纹理等将一幅图像分成若干有意义的区域,使得这些特征在某一区域内表现一致或相似,而在不同区域间表现出明显的不同。
数字图像处理大作业
数字图像处理大作业学号:姓名:班级:数字图像处理作业用自己拍摄的图像,完成以下作业:1,用Matlab语言完成如下实验:1)打开一个BMP文件2)将其局部区域的灰度值进行改变3)另存为一个新的BMP文件2,Matlab编程实现图像傅立叶高通、低通滤波,给出算法原理及实验结果。
3,找一幅曝光不足的灰度(或彩色)图像,用Matlab按照直方图均衡化的方法进行处理。
4,用Matlab打开一幅图像,添加椒盐、高斯噪声,然后使用邻域平均法、中值滤波法进行平滑。
5,用Matlab打开一幅图像,利用Roberts梯度法、Sobel算子和拉普拉斯算子进行锐化,并比较结果。
以上作业,严禁抄袭。
作业请注明学号,姓名,班级,电话号码。
将纸质版于2012-06-06晚7:00交至B529房间。
1,用Matlab语言完成如下实验:1)打开一个BMP文件2)将其局部区域的灰度值进行改变3)另存为一个新的BMP文件%文件名为way01.bmp 源程序如下:clear all;f=imread('way.bmp');f1=rgb2gray(f); %ת»»Îª»Ò¶Èͼfigure(1);imshow(f1);imwrite(f1,'way01.bmp');f1(100:150,100:120)=256; %¾Ö²¿¸Ä±ä»Ò¶ÈÖµfigure(2);imshow(f1);运行结果为:注:源文件名为way.jpg2,Matlab编程实现图像傅立叶高通、低通滤波,给出算法原理及实验结果。
1)傅里叶高通滤波:源程序为:clear all;I=imread('way01.bmp');figure(1);imshow(I);I=double(I);f=fft2(I);g=fftshift(f);[M,N]=size(g);n1=floor(M/2);n2=floor(N/2);d0=5;for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2);if d>=d0h1=1;elseh1=0;endg1(i,j)=(h1+0.5)*g(i,j);endendg2=ifftshift(g1);g3=uint8(real(ifft2(g2))); figure(2);imshow(g3);title('¸ßͨÂ˲¨½á运行结果为:2)傅里叶低通滤波:源程序为:clear all;I=imread('way01.bmp');figure(1);imshow(I);I=double(I);f=fft2(I); g=fftshift(f); [M,N]=size(g);n1=floor(M/2);n2=floor(N/2);d0=30;for i=1:Mfor j=1:Nd=sqrt((i-n1)^2+(j-n2)^2);if d<=d0h1=1;elseh1=0;endg1(i,j)=(h1+0)*g(i,j);endendg2=ifftshift(g1);g3=uint8(real(ifft2(g2))); figure(2);imshow(g3);title('µÍͨÂ˲¨½á¹û')运行结果为:3,找一幅曝光不足的灰度(或彩色)图像,用Matlab按照直方图均衡化的方法进行处理。
昆明理工大学数字图像处理课程综合报告(大作业)
数字图像处理课程综合报告学生姓名:xxx学号:2012xxxxxxxx学院:理学院专业年级:2012级电子信息科学与技术指导老师:桂进斌目录实验二:反色与二值化: (33)实验三:灰度变换 (55)线性变化 (88)指数变化 (99)对数变换 (1111)实验四:图像几何变换 (1212)图像平移 (1515)图像旋转 (1717)水平镜像 (2020)垂直镜像 (2121)实验五:直方图均衡化 (2222)实验六:图像的平滑与锐化 (2626)均值滤波 (2828)中值滤波 (2929)梯度锐化 (3232)Sobel算子锐化 (3333)实验七:彩色图像处理 (3434)读取R分量 (3434)读取G分量 (3636)读取B分量 (3838)实验八:图像频域高通和低通滤波变换 (4040)低通滤波 (4141)高通滤波 (4444)实验二:反色与二值化:图像的反色就是依次求出每个像素点的补色,由于用的是256位的图像,所以只需要使用255减去原本像素的色值即可。
图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。
在实验前期开发环境框架的搭建中就已经拿到图像在内存中的首地址存于Imgdata指针中,并开辟了一个用于存放处理后数据的内存空间Imgdata_tmp。
在以后的图像处理算法中只需要直接对Imgdata指向的数据进行处理,并把处理结果存放在Imgdata_tmp中即可。
实现代码:void MyBmp::Binaryzation(CDC *pDC){//binaryzation二值化if(m_DibHead==NULL)MessageBox(NULL,"获取文件头失败!","错误",MB_OK);if(m_hPalette!=NULL){HDC hdc=pDC->GetSafeHdc();::SelectPalette(hdc,m_hPalette,TRUE);}pDC->SetStretchBltMode(COLORONCOLOR);int x = m_DibHead->biWidth;int y = m_DibHead->biHeight;TmpBmp = new unsigned char[m_ImageSize];memset(TmpBmp,255,x*y);char temp;int ccc = 0;for (int i = 0;i<y; ++i)//行数for (int j = 0;j<x;++j){ccc++;temp = *(m_Image+i*x+j);if ((10*temp+10)>=255){TmpBmp[i*x+j] = (char)255;}elseTmpBmp[i*x+j] = 0;}//memcpy(m_Image,TmpBmp,x*y);::StretchDIBits(pDC->GetSafeHdc(),500,0,((400<=(m_DibHead->biW idth))?400:(m_DibHead->biWidth)),((400<=(m_DibHead->biHeight))?400:(m_DibHead->biHeight)),0,0, m_DibHead->biWidth,m_DibHead->biHeight,TmpBmp,(LPBITMAPINFO)m_DibHead,DIB_RGB_COLORS,SRCCOPY);delete[] TmpBmp;TmpBmp = NULL;}二值化效果:void MyBmp::Inverse(CDC *pDC){//反色if(m_DibHead==NULL)MessageBox(NULL,"获取文件头失败!","错误",MB_OK);if(m_hPalette!=NULL){HDC hdc=pDC->GetSafeHdc();::SelectPalette(hdc,m_hPalette,TRUE);}pDC->SetStretchBltMode(COLORONCOLOR);int x = m_DibHead->biWidth;int y = m_DibHead->biHeight;TmpBmp = new unsigned char[m_ImageSize];memset(TmpBmp,255,x*y);char temp;for (int i = 0;i<y; ++i)//行数for (int j = 0;j<x;++j){temp = m_Image[i*x+j];TmpBmp[i*x+j] = 255 - temp;}//memcpy(m_Image,TmpBmp,x*y);::StretchDIBits(pDC->GetSafeHdc(),500,0,((400<=(m_DibHead->biW idth))?400:(m_DibHead->biWidth)),((400<=(m_DibHead->biHeight))?400:(m_DibHead->biHeight)),0,0, m_DibHead->biWidth,m_DibHead->biHeight,TmpBmp,(LPBITMAPINFO)m_DibHead,DIB_RGB_COLORS,SRCCOPY);delete[] TmpBmp;TmpBmp = NULL;}反色效果:实验三:灰度变换灰度线性变换是灰度变换的一种,图像的灰度变换通过建立灰度映射来调整源图像的灰度从而达到图像增强的目的。
《数字图像处理》大作业
1. 图像处理与计算机图形学的区别与联系是什么?答:数字图像处理,是指有计算机及其它有关的数字技术,对图像施加某种运算和处理,从而达到某种预期的目的,而计算机图形学是研究采用计算机生成,处理和显示图形的一门科学。
两者区别:(1)研究对象不同,计算机图形学研究的研究对象是能在人的视觉系统中产生视觉印象的事物,包括自然景物,拍摄的图片,用数学方法描述的图形等,而数字图像处理研究对象是图像;(2)研究内容不同,计算机图像学研究内容为图像生成,透视,消阴等,而数字图像处理研究内容为图像处理,图像分割,图像透析等;(3)研究过程不同,计算机图像学是由数学公式生成仿真图形或图像,而数字图像处理是由原始图像处理出分析结果,计算机图形与图像处理是逆过程。
两者的联系:图像处理需图形学的交互手段,图形学需要图像处理合成图像,两者有重叠。
2. 图像数字化过程中的失真有那些原因?就在减少图像失真和减少图像的数据量两者之间如何取得平衡,谈谈个人的看法。
答:图像数字化过程中失真的原因主要来自三个方面:一.采样频率太低,即未满足采样定理而造成的失真;二.外部和内部噪声的影响,例如外部的电磁波、机械运动等;三.用有限个灰度值表示自然界无限连续的灰度值必然造成失真,为了减小失真必然增加采样点,即增加图像数据量。
在减少图像失真和减少图像的数据量两者之间取得平衡,要根据图像需求保留有用信息,如军事图像只需保留反应地形地貌及目标的信息,普通照片只需满足视觉要求即可。
3. 一幅模拟彩色图像经平板扫描仪扫描后获得一幅彩色数字图像,其分辨率为1024×768像素。
若采用RGB彩色空间,红、绿、蓝三基色的灰度等级为8比特,在无压缩的情况下,在计算机中存储该图像将占用多少比特的存储空间?当用Photoshop图像处理软件去掉图像的彩色信息,只留下灰度信息,灰度等级为4比特,在无压缩的情况下,存储该图像将占用多少字节的存储空间?答:(1)采用RGB彩色空间,红、绿、蓝三基色的灰度等级为8比特,在无压缩的情况下,占存储空间大小为:1024×768×8×3=18874268bit=2.25MB(2)去掉彩色信息,只留下灰度信息,灰度等级为4比特,在无压缩的情况下,所占的存储空间大小为:1024×768×4 =3145728bit=0.375MB4. 试设计一个程序实现nn 的中值滤波器,当模板中心移过图像中每个位置时,设计一种简便的中值更新方法。
尹其畅 数字图像处理大作业
《数字图像处理》大作业——车牌识别(车牌定位和字符分割部分)学院:电子与控制工程学院专业:交通信息工程及控制学号:****************任课教师:***车牌识别系统1 车牌识别系统1.1车牌识别系统的概述目前随着科技和经济的日益发展,智能交通系统在世界范围内引起重视,我国已经将其列入科技计划重点实施。
智能交通系统是交通发展的必然趋势,而车牌识别系统是智能交通系统中的重要组成部分。
该系统可以记录十字路口违章车辆,实现高速公路,收费路口,停车场等地的收费。
既减少了人力,又节约了时间,还提高了效率。
车牌识别系统的主要任务是分析和处理摄取到的复杂背景下的车辆图像,定位分割牌照,最后自动识别汽车牌照上的字符,LPR是利用车辆牌照的唯一性来识别和统计车辆,它是以数字图像处理、模式识别、计算机视觉等技术为基础的智能识别系统。
在现代化交通发展中车牌识别系统是制约交通系统智能化、现代化的重要因素,LPR系统应该能够从一幅图像中自动提取车辆图像,自动分割牌照图像,对字符进行正确识别,从而降低交通管理工作的复杂度。
车牌字符识别的实质是对车牌上的汉字、字母和数字进行快速准确的识别并以字符串的形式输出识别结果,字符识别技术是整个车牌识别系统的关键。
车牌识别系统与其它图像识别系统相比较而言要复杂的多,在字符识别中,汉字识别是最难也是最关键的部分,很多国外较为成熟的车牌识别系统无法进入中国市场的原因就在于无法有效的识别汉字。
1.2车牌识别系统的结构和工作原理车牌识别技术的任务是处理、分析摄取的车辆图像,实现车牌号码的自动识别。
典型的车辆牌照识别系统是由图像采集系统、中央处理器、识别系统组成,一般还要连接相应的数据库以完成特定的功能。
当系统发现(通过埋地线圈或者光束检测)有车通过时,则发出信号给图像采集系统,然后采集系统将得到的图像输入识别系统进行识别,其识别结果应该是文本格式的车牌号码。
图1.1 车牌识别系统原理图车牌整体识别过程大体可分为四个步骤:图像预处理、车牌定位和分割、车牌字符分割和车牌字符识别。
数字图像处理作业答案
1 大作业题目1.问答题1.1连续图像f(x.y)和数字图像I(r,c)中各分量的含义是什么?他们有什么联系和区别?取值范围在什么范围?答:f(x,y)表示二维图像在空间XY中一个坐标点的位置(实际图像的尺寸是有限的,所以x和y的取值也是有限的),即f(x,y)中的x,y分别代表一个点连续图像中的x轴和y轴的坐标,而f则代表图像在点(x,y)的某种性质F的数值(实际图像中各个位置上所具有的性质F的取值也是有限的,所以F得取值也是有限的)。
F,x,y的值可以是任意实数。
图像在点(x,y)也可以有多重性质,此时可用矢量f来表示。
数字图像I(r,c)表示位于图像矩阵上第r行,第c列的元素幅值。
其中I,c,r的值都是整数。
I(r,c)是通过对f(x,y)抽样和量化得来的,f(x,y)各量是连续的,I(r,c)各量是离散的,这里的I代表离散化后的f,(r,c)代表离散化后的(x,y),r,c分别有连续图像中的x,y分别采样得到的;x,y可以取所有的非负数,r,c可以取所有的非负整数。
1.2 发光强度及亮度、照度各有什么不同?答:1)发光强度,单位坎德拉,即cd。
定义:光源在给定方向的单位立体角中发射的光通量定义为光源在该方向的发光强度。
解释:发光强度是针对点光源而言的,或者发光体的大小与照射距离相比比较小的场合。
这个量是表明发光体在空间发射的会聚能力的。
可以说,发光强度就是描述了光源到底有多“亮”,因为它是光功率与会聚能力的一个共同的描述。
发光强度越大,光源看起来就越亮,同时在相同条件下被该光源照射后的物体也就越亮,因此,早些时候描述手电都用这个参数。
常见光源发光强度:太阳,2.8E27cd,高亮手电,10000cd,5mm超高亮LED,15cd。
2)亮度,单位尼特,即nt。
定义:单位光源面积在法线方向上,单位立体角内所发出的光流。
解释:这个是最容易被误解的概念了。
亮度是针对光源而言,而且不是对点光源,是对面光源而言的。
数字图像处理大作业
姓名: 学号:专业: 通信工程 科目:数字图像处理日期:2014年6月5日数字图像处理课程设计低通滤波器滤去灰度图片的椒盐噪声一、数字图像处理的简介数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。
数字图像处理的产生和迅速发展主要受三个因素的影响:一是计算机的发展;二是数学的发展(特别是离散数学理论的创立和完善);三是广泛的农牧业、林业、环境、军事、工业和医学等方面的应用需求的增长。
二、数字图像处理的发展概况1920年代的Bartlane 电缆图片传输系统(无计算机时代)1960年代的空间探测器发回的图像畸变校正系统(计算机技术引入到空间项目的开发当中)1970年代的计算机断层扫描图像重建技术三、题目要求设计一个低通滤波器,给一幅有椒盐噪声的灰度图像滤波。
按照题目的要求,简要介绍算法,并对算法进行分析。
用MATLAB 完成算法代码(不能利用MATLAB 自身的图像处理函数完成具体算法,读写和显示可以利用MATLAB 函数),注释要清晰。
给出代码运行的结果,并对结论进行总结。
四、关于图像强化和数字滤波器的基础知识1、频率域图像增强技术简介频率域图像增强时增强技术的重要组成部分,通过傅里叶变换,可以把空间域混叠的成分在频率域中分离出来,从而提取或滤去相应的图像成分。
这一过程中的核心基础即为傅里叶变换。
二维离散傅里叶变换定义为:N vy ux j N x N y e x f N v u F /)(2101)(1),(+--=-=∑∑=π,式中,1,,2,1,0;1,,2,1,0-=-=N v N u 。
二维离散傅里叶反变换:Nvy ux j N u N v ev u F Ny x f /)(2101),(1),(+-=-=∑∑=π,式中,1,,1,0,1,,1,0-=-=N y N x 。
2、频率域平滑滤波器图像空间域的线性领域卷积实际上是图像经过滤波器对信号频率成分的滤波,这种功能也可以再变换域实现,即把原始图像进行正变换,设计一个滤波器用点数操作的方法加工频谱数据,然后再进行反变换,即完成处理工作。
数字图像处理处理大作业实验报告
数字图像处理处理大作业实验报告数字图像处理处理大作业实验报告PB11210***上上签MyZenith.N_3104_EVER实验一题目:线性插值改变图像大小实验目的:1、使用MATLAB编程实现对图片大小的改变操作,使所给图片达到所要求的效果。
2、通过对MATLAB的编程加强对图像处理的认识,初步学习MATLAB在图像处理中的基本应用实验内容:在这一项目中,同学们需要实现基于双线性插值的图像缩放算法。
作业中需实现如下功能:(a) 能够利用鼠标从实验图像中任意选取测试区域,并单独显示。
(b) 使用双线性插值算法对测试区域进行缩放处理,输出如下结果,放大到原始分辨率的2倍,放大到原始分辨率的4倍,缩小到原始分辨率的1/2倍。
实验原理:图像某点的值由最邻近的四个点联立方程决定。
实验代码:1、在主函数中,使用switch函数分别调用子函数,并且之前选择需要放大或者缩小的倍数。
代码如下:2、 choice=('Yes');3、4、5、6、7、8、while (minus(choice,('Yes'))==0) clear;close;F=imread('monarch.bmp'); I=imcrop(F); BR=I(:,:,1); BG=I(:,:,2); BB=I(:,:,3); [rows,cols]=size(BR);K = sqrt(str2double(inputdlg('·?±???', 'INPUT scalefactor', 1, {'2'})));9、 width = K * rows;10、 height = K * cols;11、12、13、14、 widthScale = rows/width;15、 heightScale = cols/height;16、17、 for x = 1:width-2for y = 1:height-218、 X = x * widthScale;Y = y * heightScale;19、20、 if (X/double(uint16(X)) == 1.0) && (Y/double(uint16(Y)) == 1.0) 21、 dstBR(x,y) = BR(int16(X),int16(Y));dstBG(x,y) = BG(int16(X),int16(Y));22、 dstBB(x,y) = BB(int16(X),int16(Y)); 23、 else24、 a = double(uint16(X));25、 b = double(uint16(Y));26、27、28、29、30、BRx11 = double(BR(a,b)); BRx12 = double(BR(a,b+1)); BRx21 = double(BR(a+1,b)); BRx22 = double(BR(a+1,b+1));31、32、 BGx11 = double(BG(a,b));33、 BGx12 = double(BG(a,b+1));34、 BGx21 = double(BG(a+1,b));35、 BGx22 = double(BG(a+1,b+1));36、37、38、39、40、BBx11 = double(BB(a,b)); BBx12 = double(BB(a,b+1)); BBx21 = double(BB(a+1,b)); BBx22 = double(BB(a+1,b+1));41、42、 w1 = (b+1-Y) * (a+1-X); 43、 w2 = (Y-b) * (a+1-X);w3 = (b+1-Y) * (X-a);44、 w4 = (Y-b) * (X-a); 45、 dstBR(x,y) = uint8( BRx11 * w1 + BRx12 * w2 + BRx21* w3 + BRx22 * w4 );46、 dstBG(x,y) = uint8( BGx11 * w1 + BGx12 * w2 + BGx21* w3 + BGx22 * w4 );47、 dstBB(x,y) = uint8( BBx11 * w1 + BBx12 * w2 + BBx21* w3 + BBx22 * w4 );48、 end49、 end50、 end51、52、53、54、55、56、57、OUT(:,:,1)=dstBR; OUT(:,:,2)=dstBG; OUT(:,:,3)=dstBB;imshow(I); figure; imshow(OUT);58、59、60、61、62、options.Interpreter = 'tex'; options.Default = 'Cancel'; choice = questdlg('??·','????','Yes','No',options); end实验结果:1、选择缩放倍数:2、所选择的图像源文件如下:3、用鼠标标定所需要进行缩放的区域:4、程序正常运行后缩放效果:4倍放大5、程序正常运行后缩放效果:2倍放大6、程序正常运行后的缩放效果:缩小一倍实验二题目:高斯滤波及中值滤波处理人为添加的椒盐噪声和高斯噪声实验目的:1、对所给定的图像使用MATLAB添加高斯噪声和椒盐噪声;2、再用MATLAB程序实现中值滤波和高斯滤波;3、计算所得到结果图像的PSNR,对它们进行分析与比较,从而理解各种滤波方法的优点与特性。
数字图像处理大作业
数字图像处理大作业——图像增强的实现图像增强是指依据图像所存在的问题,按特定的需要突出一幅图像中的某些信息,同时,削弱或去除某些冗余信息的处理方法。
其主要目的是使得处理后的图像对给定的应用比原来的图像更加有效同时可以有效的改善图像质量。
图像增强技术主要包含直方图修改处理、图像平滑化处理、图像尖锐化处理和彩色处理技术等。
图像增强单纯从技术上可分成两大类:一类是频域处理法;一类是空域处理法。
频域处理法的采用的是卷积定理,它利用修改图像傅立叶变换的方法实现对图像的增强处理;空域处理法则是对图像中的像素进行直接的处理,大多数是以灰度映射变换为基础的,所用的映射变换取决于增强的目的。
本文中主要运用的是空域的三种方法:基本的对比度增强(包括反转、对数变换、对比度伸展及二值化处理)、直方图均衡化处理以及中值滤波器平滑处理和频率域的三种方法:二维傅里叶变换、低通滤波器平滑噪声(高斯低通滤波器和巴特沃斯低通滤波器)处理及高通滤波器锐化处理(巴特沃斯高通滤波器)。
一.空域图像增强Matlab程序如下所示:iptsetpref('ImshowBorder', 'tight')f=imread('C:\Users\Administrator\Desktop\picture\lenna.bmp');%读入一幅需要处理的图像figure,imshow(f),title('原始彩色图像');%显示原始图像f=rgb2gray(f);%将原始图像转化为灰度图%对比度增强-图像反转和对比度伸展img = imcomplement(f);%图像灰度级反转limg = log(1+abs(double(f)));%对数变化figure,subplot(221),imshow(f),title('原图像');subplot(222),imshow(img),title('灰度反转图像');subplot(223),imshow(f, []),title('对比度伸展图像');subplot(224),imshow(limg,[]),title('对数变换后的图像');由程序运行结果可以看出:图像反转增强了原图像白色和灰色的细节;图像对比度拉伸提高了处理时的灰度级的动态范围,从而使图像整体变亮;对数变换扩展了低灰度级的动态范围而压缩了高灰度级的动态范围,从而使得图像亮度提高。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机科学与通信工程学院课程报告课程实验题目学生姓名学号专业班级摘要在生产生活中可以利用matlab函数将苹果从纷杂的大量水果中分离出来,也可根据果径和果面缺陷实现水果的等级划分。
从而提高生产方的工作效率。
进而降低水果的生产成本迎合市场需求。
1. 引言近年来,随着人们生活水平的提高,人们对于水果的品质要求也不断提高。
实行水果的分级销售似乎成为当前市场的一个趋势。
在传统的水果等级评判主要依靠人工操作。
但我们也知道,人对图像的感知是十分主观的。
因此每个人的评价指标不同,而且人工的费用较高。
在劳动成本越发提升的今天显然这是十分落后的。
即便应用了计算机作为辅助道具,使用基于matlab的识别与检测仍旧是其中成本较为低廉的一种。
对于果农等生产方来讲这就显得尤为重要。
同样这也能让消费者从中获利。
显然这是一种很好的方式,但实际操作起来仍旧有很大的难度。
因此,利用计算机图像处理的技术研究客观、方便、高效并且便宜的水果品质检测方法越来越受到人们的重视。
2. 基本知识需要掌握图像的分割技术和图像的识别技术,并利用相应的函数将所需要显示的部位从背景中提取出来。
我们日常所获得的便是RGB彩色图像。
在处理过程中基本思路都是首先将图像处理为灰度图像,接下来处理为二值图像。
进而利用其它函数处理。
2.1 RGB图像RGB图像被用来表示彩色图像。
与索引图像一样,它分别用红(R)、绿(G)、蓝(B)三原色的组合来表示每个像素的颜色。
它的每一个像素的颜色值(由RGB三原色表示)直接存放在图像矩阵中,由于每一像素的颜色需由R、G、B三个分量来表示,M、N分别表示图像的行列数,三个M x N的二维矩阵分别表示各个像素的R、G、B三个颜色分量。
RGB图像的数据类型一般为8位无符号整形,通常用于表示和存放真彩色图像,当然也可以存放灰度图像。
2.2 灰度图像灰度图像矩阵元素的取值范围通常为[0,255]。
因此其数据类型一般为8位无符号整数的(int8),这就是所谓256灰度图像。
“0”表示纯黑色,“255”表示纯白色,中间的数字从小到大表示由黑到白的过渡色。
2.3二值图像二值图像的二维矩阵则是仅由0、1两个值构成。
“0”代表黑色,“1”代白色。
由于每一像素取值仅有0、1两种可能,所以计算机中二值图像的数据类型通常为1个二进制位。
二值图像通常用于文字、线条图的扫描识别(OCR)和掩膜图像的存储。
2.4 图像分割图像分割是数字图像处理中的关键技术之一。
它将图像中有意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,这是进一步进行图像识别、分析和理解的基础。
虽然目前已研究出不少边缘提取、区域分割的方法,但还没有一种普遍适用于各种图像的有效方法。
因此,对图像分割的研究还在不断深入之中,是目前图像处理中研究的热点之一。
2.5 图像描述图像描述是图像识别和理解的必要前提。
作为最简单的二值图像可采用其几何特性描述物体的特性,一般图像的描述方法采用二维形状描述,它有边界描述和区域描述两类方法。
2.6 图像识别图像识别属于模式识别的范畴,其主要内容是图像经过某些预处理后,进行图像分割和特征提取,从而进行判决分类。
3. 功能分析及设计在本题中,苹果的形状与其它水果是不同的,因此可以利用这一特点将其从混杂的水果中寻找出来,也可以根据它的形状进而使用直径这一特性来描述它的大小。
苹果表面上的伤痕拥有与苹果本身不同的色泽,其形状虽然不规则但是也多为圆形。
也可以根据类似的方式来进行设计。
首先可以考虑将苹果从各种水果中识别出来。
%读取原图,并处理成二值图像I=imread('d:\50.jpg');I2=rgb2gray(I);BW=im2bw(I2,0.9);total=bwarea(~BW);figure,subplot(1,3,1),imshow(I),title('原始图像');subplot(1,3,2),imshow(I2),title('灰度图像');subplot(1,3,3),imshow(BW),title('二值图像');%进行边缘检测得到了不连续的图形边界(采用sobel算子或区域增长)%得到各个图形的连续边界SE=strel('rectangle',[40 30]); % 结构定义J2=imopen(BW,SE); % 开启运算figure,imshow(J2),title('对二值图像进行开运算后的结果图像');SE=strel('square',5); % 定义3×3腐蚀结构元素J=imerode(~J2,SE);BW2=(~J2)-J; % 检测边缘figure,imshow(BW2),title('3*3腐蚀运算后的图像边界轮廓');%填充了已有的检测的连续形状边界B = imfill(BW2,'holes');B = bwmorph(B,'remove');figure,imshow(B),title('提取出的边界图像');%将不同的图形进行分别标记,num表示连接的图形对象的个数[Label,num] = bwlabel(B,8);%得到各个图像的边界像素的数组%计算各个图形单元的周长用连接像素点或数边界像素点个数的方法numPoints数组表示各个图形边界的像素个数(即用个数来表示周长)%num = max(max(Label));for i = 1 : numPremeter(i) = 0;end[row,col] = size(Label);for i = 1 : rowfor j = 1 : colif(Label(i,j) > 0)Premeter(Label(i,j)) = Premeter(Label(i,j)) + 1; %计算标记后的各块图形边界中像素的个数的总数endendend%5计算各个图形单元的面积FilledLabel = imfill(Label,'holes'); %填充打过标记的边界线中间围成的图形区域figure,imshow(FilledLabel),title('打过标记后并已被填充的结果图像');for i = 1 : numArea(i) = 0;end[row,col] = size(FilledLabel);for i = 1 : rowfor j = 1 : colif(FilledLabel(i,j) > 0)Area(FilledLabel(i,j)) = Area(FilledLabel(i,j)) + 1; %通过统计像素点个数的方式来求各形状的面积endendend%计算各个图形单元的圆度for i = 1 : numEcllipseratio(i) = 4*pi*Area(i)/Premeter(i)^2;end%识别苹果%构建苹果的分类器,在二维特征空间对各个图像进行类别区分apple=0;for i=1:numif((Ecllipseratio(i)<1.25)&&(Ecllipseratio(i)>1.0)) %分类器识别苹果的准则:判断各个图形中圆度居于1.0与1.25之间的的为苹果apple=i;endend%对分出来的类别分别构建相应的图像掩膜,并用对原图的亮度图像进行掩膜操作appleHSV=HSV;for j = 1 : rowfor k = 1 : colif(FilledLabel(j,k) ~=apple)appleHSV(j,k,3)=0;endendend%变换生成最终的结果图像,图像中显示的结果即对应分类器中指定的类别applematrix = hsv2rgb(appleHSV); %转换为RGB彩图,彩图中已经滤去了其余水果,只剩下苹果figure,imshow(applematrix),title('水果类别:苹果');接下来可以考虑计算苹果的直径。
因为对于苹果来讲,不同的大小价格是不同的。
检测思路为:将图片灰度化、二值化后,利用regionprops函数计算二值化图像的最小外接矩形大小,外接矩形框长度和宽度中的最大值即为苹果最大横切面直径。
此时的数值为像素值,通过与照片的长、宽像素值进行比较,结合图片的实际长、宽值,即可求出果径的实际长度。
具体函数如下:rgb=imread('d:\apple.png');rgb1=im2double(rgb);r=rgb1(:,:,1);g=rgb1(:,:,2);b=rgb1(:,:,3);I=(r+g+b)/3;tmp1=min(min(r,g),b);tmp2=r+g+b;tmp2(tmp2==0)=eps;S=1-3.*tmp1./tmp2;tmp1=0.5*((r-g)+(r-b));tmp2=sqrt((r-g).^2+(r-b).*(g-b));theta=acos(tmp1./(tmp2+eps));H=theta;H(b>g)=2*pi-H(b>g);H=H/(2*pi);H(S==0)=0;I = (r + g + b)/3;% Combine all three results into an hsi image.hsi = cat(3, H, S, I);S=im2bw(S,0.2);imshow(S)求取外接最小矩形框,并利用regionprops函数计算图像区域的属性信息,并读取矩形的长、宽数据,以长、宽中的最大值为果径的数值。
这里的数值为像素值。
[l,m]=bwlabel(S,8);status=regionprops(l,'BoundingBox');x=status(2,1).BoundingBox; %读取矩形的长宽X=max(x); %取最大值取得果径的像素值后,与图片的长(宽)像素值相比。
由于图片的像素、实际长宽等数值已预先设定并保持不变,因此根据果径像素与图片像素的比值可求出果径的实际数值。
接下来可以考虑检测水果表面的缺陷。
果面的缺陷主要包括压伤、碰伤、虫蛀伤亦或是裂开等,但所有表面可见的伤痕都表现为正常果面色泽、质地不一致。
因此可通过提取果面的图像特征,检测缺陷情况。
首先,读入图像后用rgb2gray函数对受检苹果进行灰度化,并用imadjust函数调整灰度图像的强度值。
I= imread(d:\'apple3.jpg');I2= rgb2gray(I);J= imadjust(I2,[0.1 0.2],[]);利用im2bw函数将调整后的灰度图像转换为二值图像,level值取1。