用MATLAB进行图像处理

图像处理概念、算法和MATLAB

不要用Photoshop,用MATLAB !与MATLAB的图像效果(第2部分)

我想欢迎回来的客座博主Brett Shoelson.这是他在MATLAB中实现图像特效系列文章的续篇。Brett说本周博客的文件交换选择他已经用MATLAB进行图像处理近20年了。

(第1部分)(第2部分)(第3部分)[第4部分]

内容

imadjust.作为图像增强工具

在我以前的文章在这个嘉宾系列中,我介绍了我的图像调整GUI,并在改良版的山魈和两只斑马的图像中使用它来增强色彩。对于这两个图像,我在所有的彩色平面上操作;也就是说,不管我对红色的飞机做了什么,我也对绿色和蓝色的飞机做了。的调用语法imadjust.如下:

imgout = imadjust(imgin,[low_in; high_in],[low_out; high_out],gamma);

默认输入为:

IMGOUT = IMADJUST(IMGIN,[0; 1],[0; 1],1);

不同的输入参数会产生不同的效果。事实上,imadjust.通常应该是简单地纠正图像的照明问题的起点:

URL =.“https://blogs.mathworks.com/pick/files/DrinkingZebra1.jpg”;IMG = IMROTATE(IMREAD(URL), -  90);增强型= IMADJUST(IMG,[0.00; 0.35],[0.00; 1.00],1.00);子图(1,2,1); imshow(IMG);标题(“原始”);子图(1,2,2); imshow(增强);标题(“| imadjust |之二”);

您可能会记住,当我在我的前一篇文章中修改了两个斑马的图像时,我不仅增加了low_out,但我也颠倒了(并调整了)low_out和high_out的值:

imgEnhanced = imadjust (imgEnhanced, 0.30;0.85], [0.90;0.00, 0.90);

我有效地反转了这些输入值逆转了镜头.事实上,对于灰度图像,调用

imgOut = imadjust (imgIn [0;1]、[1;0), 1);%注意low_out和high_out的反转

相当于调用imgOut = imcomplement (imgIn)

img = imread('cameraman.tif');IMG1 = IMADJUST(IMG,[0.00; 1.00],[1.00; 0.00],1.00);IMG2 = IMComplement(IMG);断言(Isequal(IMG1,IMG2))%没有错误抛出!人物,情节(1、2、1);imshow (img);包含(“原图由麻省理工学院提供”);子图(1,2,2); imshow(IMG1);

现在认识到imadjustgui呼叫imadjust.在幕后,使用标准语法。如果您阅读文档imadjust.仔细,您将了解参数输入Low_in,high_in,low_out,high_out,gamma不需要是标量。实际上,如果这些参数被适当地指定为1×3向量,那么imadjust.操作分别在红、绿、蓝三色平面上:

newmap = imadjust(地图,[low_in;high_in]、[low_out;high_out],γ)
%……转换与索引图像相关联的颜色图。%如果low_in,high_in,low_out,high_out和gamma是标量,那么%相同的映射适用于红色,绿色和蓝色组件。%当low_in和时,每个颜色组件的唯一映射是可能的% high_in都是1 × 3的向量,low_out和high_out都是1 × 3的向量,%或γ是1×3载体。

适用于调整ColorMaps;它还适用于调整图像。结果,您可以轻松倒置单个角色平面的输入RGB图像,并在这样做,创建一些很酷的效果!

安迪沃霍尔遇见了一头大象

安迪沃霍尔着名的玛丽莲梦露和其他名人的标志性的图像,将它们铸造在令人惊讶的,意想不到的颜色,有时会削减它们以产生令人难忘的效果。我们可以轻松产生类似的效果逆转和饱和RGB图像的单个彩色平面。(我写的imadjustgui.以互动方式促进飞机间的强度调整。)

阅读和预处理大象

首先,当然,我们阅读并展示大象:

URL = ' https://blogs.mathworks.com/pick/files/ElephantProfile.jpg ';img = imread (URL);

他是一个狡猾的老人(左侧)。我想通过增强图像的对比度来带出那些皱纹。有几种方法可以做到这一点,但我通过阅读“灰度形态”部分来了解我最喜欢的方式DIPUM,第二版。具体来说,这一(最优秀的)书籍(第529页)的作者可以将Topat和Boothat滤波器组合以增强对比度。(我建立了“对比度增强”按钮后面的那些过滤器的适当组合MorphTool)。因此,使用morphtool生成的代码:

se = strel(“磁盘”,18);Imgenhanced = Imsubtract(IMADD(IMG,IMTophat(IMG,SE)),IMBOTHAT(IMG,SE));

现在,运作imadjust.一个平面接一个平面,反转红色和蓝色平面,修改gamma映射,我可以很容易地找到一些有趣的效果。例如:

imenhanced1 = imadjust(imenhanced1,[0.00 0.00 0.00;1.00 0.38 0.40],[1.00 0.00 0.70;0.20 1.00 0.40], [4.90 4.00 1.70]);imenhanced2 = imadjust(imenhanced2,[0.13 0.00 0.30;0.75 1.00 1.00],[0.00 1.00 0.50;1.00 0.00 0.27], [5.90 0.80 4.10]);

还有两个有趣的效果,然后我们就可以组成上面的四只大象的图像了:

imgEnhanced3 = imadjust(img,[0.20 0.00 0.09;0.83 1.00 0.52],[0.00 0.00 1.00;1.00 1.00 0.00], [1.10 2.70 1.00]);imgEnhanced4 = imadjust(img,[0.20 0.00 0.00;0.70 1.00 1.00],[1.00 0.90 0.00;0.00 0.90 1.00], [1.30 1.00 1.00]);

我还想翻两张增强的图片。fliplr可以很容易地翻转二维矩阵,但对RGB图像无效。所以我一架一架地翻转它们,然后连接起来第三次翻转的飞机(z- )DimensionSinto新的RGB图像:

r = fliplr (imgEnhanced2 (:,: 1));g = fliplr (imgEnhanced2 (:,: 2));b = fliplr (imgEnhanced2 (:,:, 3));imgEnhanced2 =猫(r, g, b);
CompositeIomage = [ImgenHanced1 Imgenhanced2;Imgenhanced3 imgenhanced4];%(图2和图4是逐飞机翻转。)

下一个:把我放进动物园!

除“摄影师”版权所有Brett Shoelson之外的所有图像;与许可一起使用。




发布与MATLAB®R2012b

|
  • 打印
  • 发送电子邮件

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。