数字图像处理报告 图像二值化

数字图像处理实验报告

实验二 灰度变换

实验目的:通过实验掌握灰度变换的基本概念和方法

实验内容:

掌握基本的灰度变换:图像反转、对数变换、幂次变换和二值化

1.图像反转、对数变换、幂次变换

I=imread('fengjing.jpg');           

J=im2double(I);

subplot(2,3,1),imshow(J); title('原图');

K=255-I;

subplot(2,3,2),imshow(K); title('图象反转 ');

L=3.*log(1+J);

subplot(2,3,3),imshow(L);title('图象对数,系数为3');

M=10.*log(1+J);

subplot(2,3,4),imshow(M);title('图象对数,系数为10');

N=10.*(J.^0.2);

subplot(2,3,5),imshow(N);title('图象指数变换,γ=0.2');

P=10.*(J.^2.5);

subplot(2,3,6),imshow(P);title('图象指数变换,γ=2.5');

2.图象二值化

方法一:

I=imread('fengjing.jpg');    % 确定大小

subplot(1,2,1),imshow(I);title('原图象');

[m,n]=size(I);

for i=1:m

   for j=1:n

      if I(i,j)<128

         I(i,j)=0;

      else I(i,j)>=128 & I(i,j)<256

          I(i,j)=255;

      end

    end

end

subplot(1,2,2),imshow(I);title('图象二值化');

方法二:

I=imread('fengjing.jpg');    % 确定大小

subplot(1,2,1),imshow(I);title('原图象');
J=find(I<128);

 I(J)=0;

 J=find(I>=128);

 I(J)=255;

 title('图像二值化(阈值为128)');

 subplot(1,2,2),imshow(I);title('图象二值化');

 

第二篇:数字图像处理 实验 bmp位图的二值化与反色

实验名称 bmp位图的二值化与反色 实验时间 年 月 日

专 业 姓 名 学 号 预 习 操 作 座 位 号 教师签名 总 评

一、实验目的:

1. 理解图像的象素操作,理解二值化与反色的本质。

2. 能够使用VC++6.0进行简单的二值化与反色的变换。

二、实验原理:

计算机只能处理离散的信号,因此必须进行转换,而利用福利叶变换和傅里叶级数能够使连续的信号离散化从而进行二值化。

图像的反色就依次求出每个像素点的补色,由于用的是256位的图像,所以只需要使用255减去原本像素的色值即可。

三、实验内容:

根据实验一的结果,在VC++6.0开发环境下的资源编辑器中,在主菜单中添加一名为“基本运算”的菜单,在其中建立子菜单“点运算”,并在其中添加两个名为“二值化”“发色”的子菜单,分别给他们命名为“IDM_ERZHI”、“IDM_FANSE”的ID,分别通过类向导建立函数。

在函数体中分别加入如下代码:

void CHangView::OnErzhi()

{

// TODO: Add your command handler code here

long w,h,i,j;

w=m_DibHead->biWidth;

h=m_DibHead->biHeight;

unsigned char temp(0);

for(i<0;j<3*h;j++)

for(j<0;j<w;j++)

{

temp=*(m_Image+i*w+j);

if(temp>50)

*(m_Image+i*w+j)=255;

else

*(m_Image+i*w+j)=0;

}

Invalidate(false);

}

void CHangView::OnFanse()

{

// TODO: Add your command handler code here

long w,h;

unsigned char *lpsrc;

lpsrc=m_Image;

w=m_DibHead->biWidth;

h=m_DibHead->biHeight;

long x,y;

int f,a,b;

a=1;

b=0;

for(y=0;y<h;y++)

for(x=0;x<w;x++)

{

f=*(lpsrc+y*w+x);

*(lpsrc+y*w+x)=255-f;

}

Invalidate();

}

四、实验总结:

当程序运行没有错误,但是不能够实现函数功能的时候,是因为没有Invalidate函数,而没有能够使试图更新。

影响二值化效果的参数是if函数中的temp的值和两个指针所指的赋值。

相关推荐