matlab图像对比增强,matlab – 使用neighbourhoood对比增强图像

嗨,我想使用邻域像素值增强图像的对比度.

让图像被视为u0.然后我想通过使用公式来增强图像

这里,M1是最小值,M2是邻域像素中u0的最大值,Mg是原始图像的最大灰度值.我手术的邻居是9X9. uN是新生成的图像(对比度增强图像).

我已经尝试了以下代码但不确定我是否正确.

%Generate a contrast enhanced image

tic

clear all; close all;

I = imread('4.jpg');

I = imresize(I,[128 128]);

if size(I,3)== 3

P = rgb2gray(uint8(I));

P = double(P);

elseif size(I,3) == 2

P = 0.5.*(double(I(:,:,1))+double(I(:,:,2)));

else

P = double(I);

end

ssize=9;

mg=max(P(:));

f1 = @(x) min(x(:));

m1 = nlfilter(P,[9 9],f1);

f2 = @(x) max(x(:));

m2 = nlfilter(P,[9 9],f2);

P_op=((P-m1)./(m2-m1)).*mg;

subplot(2,1,1),imagesc(P,[0 255]);colormap(gray);axis off;

subplot(2,1,2),imagesc(P_op,[0 255]);colormap(gray);axis off;

toc

我得到的一些结果如下所示:

任何人都可以检查并告诉我我的代码是否正确?我不太确定自己.还请告诉我是否有更好的方法.

先谢谢你们.

编辑问题我重新阅读了工作,我必须将滑动窗口功能应用于几个指定的像素. **

我必须应用的像素在此方法中找到.检测图像的初始轮廓(以红色显示在图像上).然后在指定距离处绘制轮廓周围的带.

滑动窗口功能必须仅应用于原始图像的窄带内的那些像素

我正在给出图像,初始轮廓和乐队图像.

以白色标记的像素是我指定的像素,在该像素上必须应用滑动功能.是否可以根据此类标准应用nfilter?请帮忙.如果我的问题不正确,我会进一步澄清.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值