-1

我是 Matlab 和图像处理的新手,我知道如果我的图像是,我们可以通过以下公式更改图像亮度I

newImg=imadjust(I, [low_in high_in], [low_out,high_out]);

它调整图像的所有像素值,但是我如何在图像的某些部分上做到这一点,就像我在图像中检测到人脸一样,现在我想改变它的亮度,我该如何使用imadjust.

编辑

我在二进制掩码中检测到区域。

我做到了,请查看答案以及答案中的参考。

4

2 回答 2

2

我做到了,

嗯,我想改变图像某些区域的亮度,我想要的区域是通过二进制掩码计算的mask,所以我做到了,首先我简单地改变输入图像的亮度,然后像这样I存储结果newImg

newImg = imadjust(I, [low_in high_in], [low_out,high_out]);

然后在我的原始图像上应用蒙版并存储这样的蒙版区域的newImg

I(mask) = newImg (mask);

参考

我认为它内容丰富,不会让任何人感到厌烦,如果你们不激励我,那么我就无法学习,因为人们只是因为我在提问而关闭了我的线程,而且我正在为不同类型的项目使用相同的图像数据库。

于 2013-01-22T17:29:43.417 回答
1
%Suppose these are the coordinates of the rectangle in which the face is detected%
%You can do the following to adjust the brightness of that region

topLeft = 10;
topRight = 50;
bottomLeft = 50;

newImg = I;
newImg(topLeft:bottomLeft,topLeft:topRight) = imadjust(newImg(topLeft:bottomLeft,topLeft:topRight), [low_in high_in], [low_out,high_out]);
于 2013-01-20T19:00:25.000 回答