{"id":4009,"date":"2020-03-03T15:05:37","date_gmt":"2020-03-03T20:05:37","guid":{"rendered":"https:\/\/blogs.mathworks.com\/steve\/?p=4009"},"modified":"2020-03-03T16:27:29","modified_gmt":"2020-03-03T21:27:29","slug":"digital-image-processing-using-matlab-3rd-edition","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/steve\/2020\/03\/03\/digital-image-processing-using-matlab-3rd-edition\/","title":{"rendered":"Digital Image Processing Using MATLAB, 3rd edition"},"content":{"rendered":"<div class=\"content\"><p>The 3rd edition of <i>Digital Image Processing Using MATLAB<\/i> (<a href=\"http:\/\/www.imageprocessingplace.com\/DIPUM-3E\/dipum3e_main_page.htm\"><b>DIPUM3E<\/b><\/a>) has just been published, at long last. The new edition includes extensive new coverage of image transforms, spectral color models, geometric transformations, clustering, superpixels, graph cuts, active contours, maximally-stable extremal regions, SURF and similar feature detection, and deep learning networks. MATLAB code from the book is available on <a href=\"https:\/\/github.com\/dipum\/dipum-toolbox\">GitHub<\/a>.<\/p><p>This blog had a significant impact on the second edition, which was published way back in 2009. The original edition had a short section on geometric transformations, and I wanted to expand it for the second edition. In preparation for that, I write almost <a href=\"https:\/\/blogs.mathworks.com\/steve\/category\/spatial-transforms\/\">20 blog posts back in 2006<\/a> on the topic. These posts influenced what became the new \"Geometric Transformations and Image Registration\" chapter in the second edition.<\/p><p>Since the second edition was published, this whole area of the Image Processing Toolbox has been substantially extended and revised. As a result, I had the opportunity to rewrite this chapter again, almost from scratch. In the near future, I plan to revisit some of these old posts, bringing them up to date and incorporating examples from <a href=\"http:\/\/www.imageprocessingplace.com\/DIPUM-3E\/dipum3e_main_page.htm\"><b>DIPUM3E<\/b><\/a>.<\/p><p>I also did a lot of work on the beginning of the \"Color Image Processing\" chapter in the 3rd edition, adding new explanations of illumination and object reflectance spectra, the CIE color matching model, and spectral color calculations. To support these explanations, I wrote a number of color utility functions, include <tt>colorMatchingFunctions<\/tt>, <tt>lambda2xyz<\/tt>, <tt>rspd2xyz<\/tt>, <tt>chromaticityDiagram<\/tt>, <tt>xyz2xyy<\/tt>, <tt>xyy2xyz<\/tt>, <tt>spectrumBar<\/tt>, and <tt>colorSwatches<\/tt>. In addition to being included in the <a href=\"https:\/\/github.com\/dipum\/dipum-toolbox\">GitHub <b>DIPUM3E<\/b> distribution<\/a>, these color-related functions can also be found in <i>MATLAB Color Tools<\/i> on the <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/64161-matlab-color-tools\">File Exchange<\/a> and also on <a href=\"https:\/\/github.com\/mathworks\/matlab-color-tools\">GitHub<\/a>.<\/p><p>I'm looking forward to sharing a bunch of <a href=\"http:\/\/www.imageprocessingplace.com\/DIPUM-3E\/dipum3e_main_page.htm\"><b>DIPUM3E<\/b><\/a> examples and concepts and tutorial information with you on this blog in the next few months.<\/p><p><img decoding=\"async\" vspace=\"5\" hspace=\"5\" src=\"https:\/\/blogs.mathworks.com\/steve\/files\/dipum3e-fig0702.png\" alt=\"\"> <\/p><p><a href=\"http:\/\/www.imageprocessingplace.com\/DIPUM-3E\/dipum3e_main_page.htm\"><b>DIPUM3E<\/b><\/a> Figure 7.2, reproduced with permission.<\/p><script language=\"JavaScript\"> <!-- \r\n    function grabCode_3b433c3726e447f19884124543de0bd3() {\r\n        \/\/ Remember the title so we can use it in the new page\r\n        title = document.title;\r\n\r\n        \/\/ Break up these strings so that their presence\r\n        \/\/ in the Javascript doesn't mess up the search for\r\n        \/\/ the MATLAB code.\r\n        t1='3b433c3726e447f19884124543de0bd3 ' + '##### ' + 'SOURCE BEGIN' + ' #####';\r\n        t2='##### ' + 'SOURCE END' + ' #####' + ' 3b433c3726e447f19884124543de0bd3';\r\n    \r\n        b=document.getElementsByTagName('body')[0];\r\n        i1=b.innerHTML.indexOf(t1)+t1.length;\r\n        i2=b.innerHTML.indexOf(t2);\r\n \r\n        code_string = b.innerHTML.substring(i1, i2);\r\n        code_string = code_string.replace(\/REPLACE_WITH_DASH_DASH\/g,'--');\r\n\r\n        \/\/ Use \/x3C\/g instead of the less-than character to avoid errors \r\n        \/\/ in the XML parser.\r\n        \/\/ Use '\\x26#60;' instead of '<' so that the XML parser\r\n        \/\/ doesn't go ahead and substitute the less-than character. \r\n        code_string = code_string.replace(\/\\x3C\/g, '\\x26#60;');\r\n\r\n        copyright = 'Copyright 2020 The MathWorks, Inc.';\r\n\r\n        w = window.open();\r\n        d = w.document;\r\n        d.write('<pre>\\n');\r\n        d.write(code_string);\r\n\r\n        \/\/ Add copyright line at the bottom if specified.\r\n        if (copyright.length > 0) {\r\n            d.writeln('');\r\n            d.writeln('%%');\r\n            if (copyright.length > 0) {\r\n                d.writeln('% _' + copyright + '_');\r\n            }\r\n        }\r\n\r\n        d.write('<\/pre>\\n');\r\n\r\n        d.title = title + ' (MATLAB code)';\r\n        d.close();\r\n    }   \r\n     --> <\/script><p style=\"text-align: right; font-size: xx-small; font-weight:lighter;   font-style: italic; color: gray\"><br><a href=\"javascript:grabCode_3b433c3726e447f19884124543de0bd3()\"><span style=\"font-size: x-small;        font-style: italic;\">Get \r\n      the MATLAB code <noscript>(requires JavaScript)<\/noscript><\/span><\/a><br><br>\r\n      Published with MATLAB&reg; R2019b<br><\/p><\/div><!--\r\n3b433c3726e447f19884124543de0bd3 ##### SOURCE BEGIN #####\r\n%%\r\n% The 3rd edition of _Digital Image Processing Using MATLAB_ \r\n% (<http:\/\/www.imageprocessingplace.com\/DIPUM-3E\/dipum3e_main_page.htm *DIPUM3E*>) has\r\n% just been published, at long last. The new edition includes extensive new\r\n% coverage of image transforms, spectral color models, geometric\r\n% transformations, clustering, superpixels, graph cuts, active contours,\r\n% maximally-stable extremal regions, SURF and similar feature detection,\r\n% and deep learning networks. MATLAB code from the book is available on\r\n% <https:\/\/github.com\/dipum\/dipum-toolbox GitHub>.\r\n%\r\n% This blog had a significant impact on the second edition, which was\r\n% published way back in 2009. The original edition had a short section on\r\n% geometric transformations, and I wanted to expand it for the second\r\n% edition. In preparation for that, I write almost <https:\/\/blogs.mathworks.com\/steve\/category\/spatial-transforms\/ \r\n% 20 blog posts back in\r\n% 2006> on the topic. These posts influenced what became the new \"Geometric\r\n% Transformations and Image Registration\" chapter in the second edition.\r\n%\r\n% Since the second edition was published, this whole area of the Image\r\n% Processing Toolbox has been substantially extended and revised. As a\r\n% result, I had the opportunity to rewrite this chapter again, almost from\r\n% scratch. In the near future, I plan to revisit some of these old posts,\r\n% bringing up to date and incorporating examples from\r\n% <http:\/\/www.imageprocessingplace.com\/DIPUM-3E\/dipum3e_main_page.htm *DIPUM3E*>.\r\n%\r\n% I also did a lot of work on the beginning of the \"Color Image Processing\"\r\n% chapter in the 3rd edition, adding new explanations of illumination and\r\n% object reflectance spectra, the CIE color matching model, and spectral\r\n% color calculations. To support these explanations, I wrote a number of\r\n% color utility functions, include |colorMatchingFunctions|, |lambda2xyz|,\r\n% |rspd2xyz|, |chromaticityDiagram|, |xyz2xyy|, |xyy2xyz|, and\r\n% |colorSwatches|. In addition to being included in the\r\n% <https:\/\/github.com\/dipum\/dipum-toolbox GitHub *DIPUM3E* distribution>,\r\n% these color-related functions can also be found in _MATLAB Color Tools_\r\n% on the\r\n% <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/64161-matlab-color-tools\r\n% File Exchange> and also on\r\n% <https:\/\/github.com\/mathworks\/matlab-color-tools GitHub>.\r\n%\r\n% I'm looking forward to sharing a bunch of\r\n% <http:\/\/www.imageprocessingplace.com\/DIPUM-3E\/dipum3e_main_page.htm\r\n% *DIPUM3E*> examples and concepts and tutorial information with you on\r\n% this blog in the next few months.\r\n%\r\n% <<https:\/\/blogs.mathworks.com\/steve\/files\/dipum3e-fig0702.png>>\r\n%\r\n% <http:\/\/www.imageprocessingplace.com\/DIPUM-3E\/dipum3e_main_page.htm\r\n% *DIPUM3E*> Figure 7.2, reproduced with permission.\r\n##### SOURCE END ##### 3b433c3726e447f19884124543de0bd3\r\n-->","protected":false},"excerpt":{"rendered":"<div class=\"overview-image\"><img src=\"https:\/\/blogs.mathworks.com\/steve\/files\/dipum3e-fig0702.png\" class=\"img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" \/><\/div><p>The 3rd edition of Digital Image Processing Using MATLAB (DIPUM3E) has just been published, at long last. The new edition includes extensive new coverage of image transforms, spectral color models,... <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/steve\/2020\/03\/03\/digital-image-processing-using-matlab-3rd-edition\/\">read more >><\/a><\/p>","protected":false},"author":42,"featured_media":4013,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1289],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/posts\/4009"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/users\/42"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/comments?post=4009"}],"version-history":[{"count":4,"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/posts\/4009\/revisions"}],"predecessor-version":[{"id":4019,"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/posts\/4009\/revisions\/4019"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/media\/4013"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/media?parent=4009"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/categories?post=4009"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/tags?post=4009"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}