matlab 实现图像的二值化、对比度拉伸变化

本文介绍了如何使用MATLAB进行图像的二值化和对比度拉伸变化。通过im2bw函数实现二值化,利用阈值调整图像;通过对比度拉伸变换工具增强图像细节,例如使用g=c*log(1+double(f))和s=T(r)=1/(1+(m/r)^E)公式。
摘要由CSDN通过智能技术生成
一、将一幅图像转化为二值图像,可以使用如下函数:
BW = im2bw(I, level) %输出像素点小于level的像素,I是代表图像的变量,level是阈值,level属于[0 1].
BW = im2bw(RGB, level)%将RGB彩色图像转换为二值图像,转换过程中先转化为灰度图像,再转换为二值图像

二值图像:取值只有0和1的逻辑数组(logical型的数组)。如果是一个unit8的数组只包含0,1,则它不是二值数组。
转化EXAMPLE:
f=imread('p1.jpg');
g=im2double(f);%将图形转化为double型的或者g=mat2gray(f);灰度图像,保证每个像素点的取值在0-1之间
a=mean(g(:));%设置阈值,一般取矩阵的均值作为图像的阈值
g=im2bw(g);
t=im2bw(g,a);imshow(g),figure,imshow(t);%显示两个图像,如果想要看阈值的大小对图像的影响,设置这个值大于或者小于a
MATLAB实现灰度图像的黑白反转、变亮、变暗、对比度拉伸二值化可以通过以下方法进行: 1. 黑白反转:将图像中的每个像素值取反,即原始像素值为0的变为255(白色),原始像素值为255的变为0(黑色),可以通过简单的减法操作实现。 ```matlab I_inverted = 255 - I; ``` 其中`I`是原始图像变量。 2. 变亮:通过增加图像每个像素的值来实现变亮效果,可以通过加上一个常数实现。 ```matlab I_brighter = I + 50; % 假设增加50来变亮 ``` 但是需要注意不要使得像素值溢出,即结果不应该超过255。 3. 变暗:通过减少图像每个像素的值来实现变暗效果,可以通过减去一个常数实现。 ```matlab I_darker = I - 50; % 假设减少50来变暗 ``` 同样需要注意不要使得像素值下溢,即结果不应该小于0。 4. 对比度拉伸对比度拉伸通常用来改善图像对比度,使得图像更加清晰,可以通过线性变换来实现。 ```matlab I_stretched = (double(I) - min(I(:))) * (255 / (max(I(:)) - min(I(:)))); ``` 这会将图像的最小像素值映射到0,最大像素值映射到255,而其他像素值按比例调整。 5. 二值化:将图像转换为只有黑色和白色两种颜色的图像,可以通过设置一个阈值来实现。 ```matlab I_binary = imbinarize(I); ``` 或者手动设置阈值进行二值化: ```matlab I_binary = I > threshold; % threshold为设定的阈值 ``` 需要注意的是,在进行上述操作时,可能需要对结果进行类型转换或截断,以确保结果是有效的灰度图像数据类型。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值