图像处理 - MATLAB 算法



所以我需要改进图像的分割。这是通过一个非常简单明了的算法完成的,该算法如下 -

遍历整个图像(img.jpg的绿色通道)对于每个像素,P

  • 计算居中的 21 x 21 像素区域的平均灰度值在 P 上,称之为 A
  • 将 P 的值乘以 128/A

我不确定如何编写代码,因为我是 Matlab 的新手(今天基本上开始学习它)。关于如何正确实现算法的任何建议?

试试这个 -

f = imread('img.jpg');
greenChannel = f(:,:,2);
h = fspecial('average', 21);  %%// Kernel to be used for averaging
%h = ones(21,21)/(21*21); %%// Same as above, but custom-made
A = imfilter(greenChannel,h); %%// Average values for each pixel
newgreenChannel = greenChannel.*(128./A);
figure,imshow(newgreenChannel)

最新更新