数字图像处理(编程,MATLAB最大类间方差法)
大津法matlab

大津法matlab大津法是一种图像二值化的方法,它能够自动确定合适的阈值进行图像的二值化处理。
以下是在Matlab中实现大津法的步骤:Step 1:读入待处理的灰度图像。
Step 2:计算图像的直方图。
Step 3:初始化最佳阈值为0,最大类间方差为0。
Step 4:计算每个可能的阈值的类间方差。
Step 5:找到使类间方差最大化的阈值。
Step 6:使用最佳阈值将图像二值化。
Matlab代码实现:% Step 1:读入待处理的灰度图像I = imread('image.jpg'); % 读入图像Igray = rgb2gray(I); % 将图像转化为灰度图% Step 2:计算图像的直方图counts = imhist(Igray); % 计算灰度直方图% Step 3:初始化最佳阈值为0,最大类间方差为0bestT = 0; % 最佳阈值maxVar = 0; % 最大类间方差% Step 4:计算每个可能的阈值的类间方差totalPixels = numel(Igray); % 总像素数for threshold = 1:255% 计算类1(低灰度)的像素个数和概率counts1 = sum(counts(1:threshold));p1 = counts1 / totalPixels;% 计算类2(高灰度)的像素个数和概率counts2 = sum(counts(threshold+1:end));p2 = counts2 / totalPixels;% 计算类1和类2的均值mean1 = sum((0:threshold-1) .* counts(1:threshold)) / counts1;mean2 = sum((threshold:255) .*counts(threshold+1:end)) / counts2;% 计算类间方差varB = p1 * p2 * (mean1 - mean2)^2;% 更新最佳阈值和最大类间方差if varB > maxVarmaxVar = varB;bestT = threshold;endend% Step 5:找到使类间方差最大化的阈值% Step 6:使用最佳阈值将图像二值化Ibinary = imbinarize(Igray, bestT/255); % 将图像二值化imshow(Ibinary); % 显示处理后的图像以上就是在Matlab中实现大津法的步骤和代码实现。
matlab otsu算法

matlab otsu算法什么是Otsu算法?Otsu算法,也被称为最大类间方差法,是一种常用于图像处理和计算机视觉中的图像二值化方法。
该算法是由日本学者大津秀一在1979年提出的。
Otsu算法的主要目标是将图像转化为黑白二值图像,以便进行后续的图像分割和特征提取等操作。
其基本原理是在图像中寻找一个最佳的阈值,将图像的像素点分成两个互补的类别,使得两个类别之间的方差最大化。
如何实现Otsu算法?步骤1:计算灰度直方图首先,我们需要计算图像的灰度直方图。
灰度直方图是一种统计图,用于显示图像中各个灰度级别的像素点的分布情况。
在MATLAB中,我们可以使用imhist函数来计算灰度直方图。
步骤2:计算类间方差接下来,我们需要计算图像的类间方差。
类间方差是指图像中不同类别(即黑色和白色)之间的方差。
在Otsu算法中,我们要找到一个最佳的阈值,使得将图像分为两个类别时,类间方差最大化。
计算类间方差的公式为:\[\sigma^2_w(t) = \omega_1(t)\omega_2(t)[\mu_1(t)-\mu_2(t)]^2\]其中,\(\sigma^2_w(t)\)表示在阈值t处的类间方差,\(\omega_1(t)\)和\(\omega_2(t)\)表示在阈值t处两个类别的像素点比例,\(\mu_1(t)\)和\(\mu_2(t)\)表示在阈值t处两个类别的平均灰度值。
步骤3:寻找最佳阈值在这一步中,我们通过遍历不同的阈值,找到一个使类间方差最大化的阈值。
具体的实现方法如下:1. 根据步骤2中的类间方差公式,计算每个阈值下的类间方差值。
2. 找到类间方差最大的阈值,这个阈值即为最佳阈值。
步骤4:二值化图像最后,我们使用最佳阈值来将图像进行二值化处理。
二值化即将图像中的像素点分为只有黑色和白色两种颜色的情况。
根据最佳阈值,大于阈值的像素点被赋值为白色,小于等于阈值的像素点被赋值为黑色。
在MATLAB中,可以使用下列代码执行Otsu算法:matlab读取图像img = imread('image.jpg');将图像转化为灰度图像gray_img = rgb2gray(img);计算灰度直方图histogram = imhist(gray_img);计算类间方差class_variances = zeros(256, 1);for t = 1:256计算每个阈值下的类间方差omega1 = sum(histogram(1:t)) / numel(gray_img);omega2 = sum(histogram(t+1:end)) / numel(gray_img);mu1 = sum((0:t-1)' .* histogram(1:t)) / sum(histogram(1:t));mu2 = sum((t:255)' .* histogram(t+1:end)) /sum(histogram(t+1:end));class_variances(t) = omega1 * omega2 * (mu1 - mu2)^2;end找到最佳阈值[~, threshold] = max(class_variances);二值化图像binary_img = gray_img > threshold;显示二值化图像imshow(binary_img);总结:Otsu算法是一种常用的图像二值化方法,它能够通过寻找最佳的阈值,将图像转化为黑白二值图像。
基于matlab的种子计数

综合自动化实验课程设计报告题目基于matlab的种子计数项目成员专业班级指导教师分院完成日期摘要随着计算机技术和数字图像技术的发展,图像方法已经成为植物种子颗粒检测的一种重要手段,其目的就是从颗粒图像中准确获得颗粒外观轮廓的信息,进一步测量颗粒的特征参数并加以分析,以便于我们对种子进行轮廓分离和统计。
本论文紧密结合图像的分割和统计方法,主要探讨了植物种子颗粒图像统计技术及其实现方法,建立了一套对颗粒图像进行处理和分析的软件系统。
论文按照对颗粒图像处理的先后步骤进行论述,通过论述算法原理和给出处理实例相结合来探讨各种方法的可行性。
关键词:颗粒图像,图像处理,颗粒统计AbstractWith the development of computer technology and digital image technology, the image method has become an important means of seed particle detector, and its purpose is to obtain accurate information from the particle exterior contour particle image, further measurements of parameters and characteristics of the particles to be analyzed, so that we can separate the seed contour and statistics.The article combines segmentation and Plant seeds statistics method of the image closely,has discussed the plant seeds statistics technology of the particle image and implementation method,set up one image processing and analyzing software system.The article,according to describing the priority step of particle image process,discuss the feasibility of various kinds of methods through describing the principle of algorithms and providing the processing instance to combine together.Keyword:particle image,image processing,particle statistics目录摘要 (II)Abstract (III)目录 (IV)第1章概述 (5)1.1 引言 (5)1.2 设计目标 (5)1.3 种子数量统计的应用背景 (5)1.4研究意义 (6)1.5国内外现状 (7)1.6 matlab平台简介 (7)第2章需求分析 (8)2.1 种子计数需求分析 (8)2.2 本系统简介 (8)第3章种子计数的关键技术 (9)3.1 图像预处理 (9)3.2 matlab中图像灰度化以及二值化 (10)3.3 matlab中膨胀腐蚀算法 (11)3.4 图像开运算 (11)3.5 matlab中颗粒统计 (12)第4章系统设计 (13)4.1 本系统整体流程设计 (13)4.2 bwlabel函数的具体实现方法 (14)第5章总结与展望 (15)参考文献 (16)致谢 (17)第1章概述1.1 引言近年来,数字图像技术受到人们广泛的关注。
图像阈值分割方法的研究

目录摘要 (1)Abstract (2)前言 (3)第一章绪论 (4)1.1 图像阈值分割的背景及研究意义 (4)1.2 图像阈值分割国内外研究现状 (5)1.3论文研究的主要内容及各章结构安排 (5)第二章图像分割方法综述 (6)2.1图像分割技术的基本概念 (6)2.2.图像分割的基本分类 (6)2.2.1 边缘检测分割法 (7)2.2.2 阈值分割法 (8)2.2.3 区域分割法 (8)第三章图像阈值分割技术 (8)3.1 迭代法 (9)3.2 最大类间方差法 (11)3.3最小误差法 (13)3.4 最大熵法 (16)第四章图像分割算法的评价 (19)4.1 Dice系数 (19)4.2 Hausdorff距离 (20)4.3 Jaccard相似系数 (21)4.4 准确率、召回率 (21)4.5 分割效果分析 (21)第五章结论 (25)参考文献 (26)摘要图像分割是一个十分基础却十分重要的问题,它是数字图像处理和数字图像分析之间的关键桥梁,图像分割效果的好坏与后续一系列图像分析问题紧密相关。
所以,图像分割技术在整个数字图像处理中的地位十分重要。
本文首先对图像分割的有关理论做出简洁的介绍,重点探究图像阈值分割技术。
将对几种比较常见的阈值分割算法进行研究,主要是迭代法、最大类间方差法、最大熵法、最小误差法,并且对特定图像在MATLAB环境中进行了仿真测试。
本文采纳了一种图像分割评价标准,综合了Dice系数、Hausdorff距离、Jaccard相似系数、准确率、召回率等指标。
将手动分割的图像作为金标准,与算法分割的图像进行比较,在MATLAB 环境下给出算法图像与金标准图像的相似度,从而可以在评价各图像阈值分割算法上具有更强的说服力。
从最终的试验结果和参数分析可以看出,相比较其他三种算法分割方法,最大类间方差法不仅可以将图像中的背景和目标分割开来,而且对于图像细节的处理也比较好,并且在处理不同图像的图像时也具有良好的稳定性。
方差分析及MATLAB实现

方差分析及MATLAB实现方差分析是一种用于比较多个样本均值是否具有统计显著性差异的统计方法。
它适用于一个或多个因素的研究,并且可以用来确定这些因素对于研究变量的影响程度。
MATLAB是一种功能强大的数值计算和数据分析软件,可以用于实现方差分析。
方差分析的基本原理是通过计算不同组之间的方差来检验均值是否具有显著差异。
方差分析包括总体总变异的分解、组内变异的计算和组间变异的计算。
总体总变异是指所有数据点与总平均值之间的差异,组内变异是指每个组内的数据点与该组均值之间的差异,组间变异是指不同组之间的均值之间的差异。
MATLAB提供了多种函数和工具箱来实现方差分析。
首先,需要使用`anova1`函数进行一元方差分析,该函数可以计算单个因素的影响。
例如,假设有三个不同的组进行了一些实验,并且希望确定这些组之间一些变量的均值是否存在显著差异。
可以使用以下代码计算方差分析并得出结论:```matlabdata = [group1_data; group2_data; group3_data]; % 将组数据合并为一个矩阵group = [repmat('Group 1', size(group1_data, 1), 1); ... %创建一个标识每个数据点所属组的向量repmat('Group 2', size(group2_data, 1), 1); ...repmat('Group 3', size(group3_data, 1), 1)];[p, tbl, stats] = anova1(data, group); % 进行方差分析alpha = 0.05; % 显著性水平为0.05if p < alphadisp('不同组之间的均值存在显著差异');elsedisp('不同组之间的均值不存在显著差异');end```除了一元方差分析外,MATLAB还提供了适用于多个因素的方差分析函数,如`anova2`和`ranova`。
图像分割最大类间方差法

OPENCV的二值化操作中,有一种“大津阈值处理”的方法,使用函数cvThreshold(image,image2,0,255,CV_THRESH_OTSU) 实现,该函数就会使用大律法OTSU得到的全局自适应阈值来进行二值化图片,而参数中的threshold不再起作用。
OTSU算法OTSU算法也称最大类间差法,有时也称之为大津算法,由大津于1979年提出,被认为是图像分割中阈值选取的最佳算法,计算简单,不受图像亮度和对比度的影响,因此在数字图像处理上得到了广泛的应用。
它是按图像的灰度特性,将图像分成背景和前景两部分。
因方差是灰度分布均匀性的一种度量,背景和前景之间的类间方差越大,说明构成图像的两部分的差别越大,当部分前景错分为背景或部分背景错分为前景都会导致两部分差别变小。
因此,使类间方差最大的分割意味着错分概率最小。
设灰度图像灰度级是L,则灰度范围为[0,L-1],利用OTSU算法计算图像的最佳阈值为:t = Max[w0(t) * (u0(t) - u)^2 + w1(t) * (u1(t) - u)^2)]其中的变量说明:当分割的阈值为t时,w0为背景比例,u0为背景均值,w1为前景比例,u1为前景均值,u为整幅图像的均值。
使以上表达式值最大的t,即为分割图像的最佳阈值。
以下是一段在OpenCV中实现的C语言程序,即一个使用OTSU算法提取图像阈值的函数,输入参数为一个图像指针,返回分割该图像的最佳阈值。
其中的变量说明:当分割的阈值为t时w0为背景像素点占整幅图像的比例u0为w0平均灰度w1为前景像素点占整幅图像的比例u1为w1平均灰度u为整幅图像的平均灰度公式:g = w0*pow((u-u0),2) + w1*pow((u-u1),2)int MyAutoFocusDll::otsuThreshold(IplImage *frame){const int GrayScale = 256;int width = frame->width;int height = frame->height;int pixelCount[GrayScale];float pixelPro[GrayScale];int i, j, pixelSum = width * height, threshold = 0;uchar* data = (uchar*)frame->imageData; //指向像素数据的指针for(i = 0; i < GrayScale; i++){pixelCount[i] = 0;pixelPro[i] = 0;}//统计灰度级中每个像素在整幅图像中的个数for(i = 0; i < height; i++){for(j = 0;j < width;j++){pixelCount[(int)data[i * width + j]]++; //将像素值作为计数数组的下标 }}//计算每个像素在整幅图像中的比例float maxPro = 0.0;int kk=0;for(i = 0; i < GrayScale; i++){pixelPro[i] = (float)pixelCount[i] / pixelSum;if( pixelPro[i] > maxPro ){maxPro = pixelPro[i];kk = i;}}//遍历灰度级[0,255]float w0, w1, u0tmp, u1tmp, u0, u1, u, deltaTmp, deltaMax = 0;for(i = 0; i < GrayScale; i++) // i作为阈值{w0 = w1 = u0tmp = u1tmp = u0 = u1 = u = deltaTmp = 0;for(j = 0; j < GrayScale; j++){if(j <= i) //背景部分{w0 += pixelPro[j];u0tmp += j * pixelPro[j];}else //前景部分{w1 += pixelPro[j];u1tmp += j * pixelPro[j];}}u0 = u0tmp / w0;u1 = u1tmp / w1;u = u0tmp + u1tmp;deltaTmp = w0 * pow((u0 - u), 2) + w1 * pow((u1 - u), 2);if(deltaTmp > deltaMax){deltaMax = deltaTmp;threshold = i;}}return threshold;}接下来介绍OTSU方法的原理:********************************************************************* ********************************************************************* *********************OTSU法对于具有双峰性质的灰度图像或是彩色图像的某一通道的分割效果很好,程序为了增加健壮性加了个可以根据实际情况确定的修正值th_set.********************************************************************* ********************************************************************* ********************function y1=OTSU(image,th_set)image=imread('color1.bmp');gray=rgb2gray(image);%原图像的灰度图low_high=stretchlim(gray);%增强图像,似乎也不是一定需要gray=imadjust(gray,low_high,[]);% subplot(224);imshow(gray);title('after adjust');count=imhist(gray);[r,t]=size(gray);n=r*t;l=256;count=count/n;%各级灰度出现的概率for i=2:lif count(i)~=0st=i-1;breakendend%以上循环语句实现寻找出现概率不为0的最小灰度值for i=l:-1:1if count(i)~=0;nd=i-1;breakendend%实现找出出现概率不为0的最大灰度值f=count(st+1:nd+1);p=st;q=nd-st;%p和分别是灰度的起始和结束值u=0;for i=1:q;u=u+f(i)*(p+i-1);ua(i)=u;end%计算图像的平均灰度值for i=1:q;w(i)=sum(f(1:i));end%计算出选择不同k的时候,A区域的概率d=(u*w-ua).^2./(w.*(1-w));%求出不同k值时类间方差[y,tp]=max(d);%求出最大方差对应的灰度级th=tp+p;if th<th_setth=tp+p;elseth=th_set; %根据具体情况适当修正门限endy1=zeros(r,t);for i=1:rfor j=1:tx1(i,j)=double(gray(i,j));endendfor i=1:rfor j=1:tif (x1(i,j)>th)y1(i,j)=x1(i,j);elsey1(i,j)=0;endendend%上面一段代码实现分割% figure,imshow(y1);% title('灰度门限分割的图像');接下来介绍OTSU方法的原理以及用C语言实现:阈值将原图像分成前景、背景两个图像。
数字图像处理课程设计报告matlab

数字图像处理课程设计报告姓名:学号:班级: .net设计题目:图像处理教师:赵哲老师提交日期: 12月29日一、设计内容:主题:《图像处理》详细说明:对图像进行处理(简单滤镜,模糊,锐化,高斯模糊等),对图像进行处理(上下对称,左右对称,单双色显示,亮暗程度调整等),对图像进行特效处理(反色,实色混合,色彩平衡,浮雕效果,素描效果,雾化效果等),二、涉及知识内容:1、二值化2、各种滤波3、算法等三、设计流程图四、实例分析及截图效果:运行效果截图:第一步:读取原图,并显示close all;clear;clc;% 清楚工作窗口clc 清空变量clear 关闭打开的窗口close allI=imread('1.jpg');% 插入图片1.jpg 赋给Iimshow(I);% 输出图II1=rgb2gray(I);%图片变灰度图figure%新建窗口subplot(321);% 3行2列第一幅图imhist(I1);%输出图片title('原图直方图');%图片名称一,图像处理模糊H=fspecial('motion',40);%% 滤波算子模糊程度40 motion运动q=imfilter(I,H,'replicate');%imfilter实现线性空间滤波函数,I图经过H滤波处理,replicate反复复制q1=rgb2gray(q);imhist(q1);title('模糊图直方图');二,图像处理锐化H=fspecial('unsharp');%锐化滤波算子,unsharp不清晰的qq=imfilter(I,H,'replicate');qq1=rgb2gray(qq);imhist(qq1);title('锐化图直方图');三,图像处理浮雕(来源网络)%浮雕图l=imread('1.jpg');f0=rgb2gray(l);%变灰度图f1=imnoise(f0,'speckle',0.01);%高斯噪声加入密度为0.01的高斯乘性噪声 imnoise噪声污染图像函数 speckle斑点f1=im2double(f1);%把图像数据类型转换为双精度浮点类型h3=1/9.*[1 1 1;1 1 1;1 1 1];%采用h3对图像f2进行卷积滤波f4=conv2(f1,h3,'same');%进行sobel滤波h2=fspecial('sobel');g3=filter2(h2,f1,'same');%卷积和多项式相乘 same相同的k=mat2gray(g3);% 实现图像矩阵的归一化操作四,图像处理素描(来源网络)f=imread('1.jpg');[VG,A,PPG] = colorgrad(f);ppg = im2uint8(PPG);ppgf = 255 - ppg;[M,N] = size(ppgf);T=200;ppgf1 = zeros(M,N);for ii = 1:Mfor jj = 1:Nif ppgf(ii,jj)<Tppgf1(ii,jj)=0;elseppgf1(ii,jj)=235/(255-T)*(ppgf(ii,jj)-T);endendendppgf1 = uint8(ppgf1);H=fspecial('unsharp');Motionblur=imfilter(ppgf1,H,'replicate');figure;imshow(ppgf1);调用function [VG, A, PPG] = colorgrad(f, T)if (ndims(f)~=3) || (size(f,3)~=3)error('Input image must be RGB');endsh = fspecial('sobel');sv = sh';Rx = imfilter(double(f(:,:,1)), sh, 'replicate');Ry = imfilter(double(f(:,:,1)), sv, 'replicate');Gx = imfilter(double(f(:,:,2)), sh, 'replicate');Gy = imfilter(double(f(:,:,2)), sv, 'replicate');Bx = imfilter(double(f(:,:,3)), sh, 'replicate');By = imfilter(double(f(:,:,3)), sv, 'replicate');gxx = Rx.^2 + Gx.^2 + Bx.^2;gyy = Ry.^2 + Gy.^2 + By.^2;gxy = Rx.*Ry + Gx.*Gy + Bx.*By;A = 0.5*(atan(2*gxy./(gxx-gyy+eps)));G1 = 0.5*((gxx+gyy) + (gxx-gyy).*cos(2*A) + 2*gxy.*sin(2*A));A = A + pi/2;G2 = 0.5*((gxx+gyy) + (gxx-gyy).*cos(2*A) + 2*gxy.*sin(2*A)); G1 = G1.^0.5;G2 = G2.^0.5;VG = mat2gray(max(G1, G2));RG = sqrt(Rx.^2 + Ry.^2);GG = sqrt(Gx.^2 + Gy.^2);BG = sqrt(Bx.^2 + By.^2);PPG = mat2gray(RG + GG + BG);if nargin ==2VG = (VG>T).*VG;PPG = (PPG>T).*PPG;endf1=rgb2gray(f);imhist(f1);title('素描图直方图');五,图像处理实色混合(来源网络)%实色混合I(I<=127)=0; %对像素进行处理,若值小于等于127,置0 I(I>127)=255; %对像素进行处理,若值大于127,置255 imshow(I);title('像素图');I1=rgb2gray(f);imhist(I1);title('像素图直方图');六,图像处理反色图f=imread('1.jpg');q=255-q;imshow(q);title('反色图');imhist(q1);title('反色图直方图');七,图像处理上下对称A=imread('1.jpg');B=A;[a,b,c]=size(A);a1=floor(a/2); b1=floor(b/2); c1=floor(c/2);B(1:a1,1:b,1:c)=A(a:-1:a-a1+1,1:b,1:c);figureimshow(B)title('上下对称');A=rgb2gray(A);figureimhist(A)title('上下对称直方图');八,图像处理类左右对称C=imread('1.jpg');A=C;C(1:a,1:b1,1:c)=A(1:a,b:-1:b+1-b1,1:c);figureimshow(C)title('左右对称');A=rgb2gray(A);figureimhist(A);title('左右对称直方图');九,图像处理单双色显示a=imread('1.jpg');a1=a(:,:,1);a2=a(:,:,2); a3=a(:,:,3);aa=rgb2gray(a);a4=cat(3,a1,aa,aa); a5=cat(3,a1,a2,aa);figuresubplot(121);imshow(a4);title('单色显示');subplot(122);imshow(a5);title('双色显示');a4=rgb2gray(a4);a5=rgb2gray(a5);figuresubplot(121);imhist(a4);title('单色显示直方图');subplot(122);imhist(a5);title('双色显示直方图');十,图像处理亮暗度调整a=imread('1.jpg');a1=0.8*a;figuresubplot(121);imshow(a1);title('暗图');subplot(122);imshow(a2);title('亮图')q3=rgb2gray(a1);q4=rgb2gray(a2);figuresubplot(121);mhist(q3);title('暗图直方图') subplot(122);imhist(q4);title('亮图直方图')十一,图像处理雾化处理q=imread('1.jpg');m=size(q,1);n=size(q,2);r=q(:,:,1);g=q(:,:,2);b=q(:,:,3);for i=2:m-10for j=2:n-10k=rand(1)*10;%产生一个随机数作为半径di=i+round(mod(k,33));%得到随机横坐标dj=j+round(mod(k,33));%得到随机纵坐标r(i,j)=r(di,dj);%将原像素点用随机像素点代替 g(i,j)=g(di,dj);b(i,j)=b(di,dj);endenda(:,:,1)=r;a(:,:,2)=g;a(:,:,3)=b;imshow(a)title('雾化处理图');q=rgb2gray(a);figureimhist(q);title('雾化处理图直方图');十二,图像处理高斯滤波I = imread('1.jpg');G =fspecial('gaussian', [5 5], 2);% fspecial生成一个高斯滤波器Ig =imfilter(I,G,'same');%imfilter使用该滤波器处理图片imshow(Ig);title('高斯滤波');I1=rgb2gray(Ig);imhist(I1);title('高斯滤波直方图');十三,图像处理色彩平衡(来自网络)im=imread('1.jpg');im2=im;%存储元图像im1=rgb2ycbcr(im);%将im RGB图像转换为YCbCr空间。
(完整版)数字图像处理MATLAB程序【完整版】

第一部分数字图像处理实验一图像的点运算实验1.1 直方图一.实验目的1.熟悉matlab图像处理工具箱及直方图函数的使用;2.理解和掌握直方图原理和方法;二.实验设备1.PC机一台;2.软件matlab。
三.程序设计在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果观察图像matlab环境下的直方图分布。
(a)原始图像 (b)原始图像直方图六.实验报告要求1、给出实验原理过程及实现代码;2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。
实验1.2 灰度均衡一.实验目的1.熟悉matlab图像处理工具箱中灰度均衡函数的使用;2.理解和掌握灰度均衡原理和实现方法;二.实验设备1.PC机一台;2.软件matlab;三.程序设计在matlab环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif');%读取图像subplot(2,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(2,2,3),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题a=histeq(I,256); %直方图均衡化,灰度级为256subplot(2,2,2),imshow(a) %输出均衡化后图像title('均衡化后图像') %在均衡化后图像中加标题subplot(2,2,4),imhist(a) %输出均衡化后直方图title('均衡化后图像直方图') %在均衡化后直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。