{"id":233,"date":"2008-11-03T11:41:15","date_gmt":"2008-11-03T16:41:15","guid":{"rendered":"https:\/\/blogs.mathworks.com\/steve\/2008\/11\/03\/r2008b\/"},"modified":"2019-10-28T09:46:00","modified_gmt":"2019-10-28T13:46:00","slug":"r2008b","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/steve\/2008\/11\/03\/r2008b\/","title":{"rendered":"R2008b"},"content":{"rendered":"<div xmlns:mwsh=\"https:\/\/www.mathworks.com\/namespace\/mcode\/v1\/syntaxhighlight.dtd\" class=\"content\">\r\n   <p>The MathWorks updates its product line twice per year on a <a href=\"https:\/\/www.mathworks.com\/products\/new_products\/release_model.html\">regular schedule<\/a>. Early last month we shipped our second release of the year, R2008b.\r\n   <\/p>\r\n   <p>My fellow bloggers have already been busy posting about the new release.  In particular, Ken and Mike (with some help from\r\n      Lori and James) have already written several posts about some great new features in the MATLAB Desktop. You should <a href=\"https:\/\/blogs.mathworks.com\/community\/\">click over<\/a> and read their October posts.\r\n   <\/p>\r\n   <p>In MATLAB, the main thing that caught my eye specific to image processing is the enhancements to <tt>imread<\/tt>.  We've added JPEG 2000 and netCDF support.\r\n   <\/p>\r\n   <p>The <a href=\"https:\/\/www.mathworks.com\/products\/image\/\">Image Processing Toolbox<\/a> has several enhancements.  We've made several operations faster, including:\r\n   <\/p>\r\n   <div>\r\n      <ul>\r\n         <li>binary erosion and dilation (<tt>imdilate<\/tt>)\r\n         <\/li>\r\n         <li>binary hit-miss (<tt>bwhitmiss<\/tt>)\r\n         <\/li>\r\n         <li>range filtering (<tt>rangefilt<\/tt>)\r\n         <\/li>\r\n         <li>gray-level co-occurrence matrix (<tt>graycomatrix<\/tt>)\r\n         <\/li>\r\n      <\/ul>\r\n   <\/div>\r\n   <p>We added a new corner detection function, <tt>cornermetric<\/tt>. It offers two choices for the metric: Harris, and Shi \/ Tomasi.\r\n   <\/p>\r\n   <p>Also, the ROI functions such as <tt>imrect<\/tt>, <tt>imellipse<\/tt>, <tt>impoly<\/tt>, etc., offer a new <tt>createMask<\/tt> method for converting the ROI to binary image mask form.\r\n   <\/p>\r\n   <p>Here's a timing of <tt>imdilate<\/tt> on a 1k-by-1k image using a 3-by-3 structuring element.  \r\n   <\/p><pre style=\"background: #F9F7F3; padding: 10px; border: 1px solid rgb(200,200,200)\">bw = repmat(imread(<span style=\"color: #A020F0\">'text.png'<\/span>), 4, 4);\r\nse = strel(ones(3,3));\r\ntimeit(@() imdilate(bw, se))<\/pre><pre style=\"font-style:oblique\">\r\nans =\r\n\r\n    0.0060\r\n\r\n<\/pre><p>That result is about 3 times faster than R2008a on my computer.<\/p>\r\n   <p>You might also be interested in updates to the <a href=\"https:\/\/www.mathworks.com\/products\/imaq\/\">Image Acquisition Toolbox<\/a> and the <a href=\"https:\/\/www.mathworks.com\/products\/viprocessing\/\">Video and Image Processing Blockset<\/a>.  Key new features in the Image Acquisition Toolbox include:\r\n   <\/p>\r\n   <div>\r\n      <ul>\r\n         <li>Support for display of high bit-depth cameras in the Video Preview window<\/li>\r\n         <li>Enhancements to Image Acquisition Tool<\/li>\r\n         <li>Support for additional DALSA&reg; hardware<\/li>\r\n      <\/ul>\r\n   <\/div>\r\n   <p>Video and Image Processing Blockset enhancements include:<\/p>\r\n   <div>\r\n      <ul>\r\n         <li>Fixed-point and integer word size limit extended from 32 to 128 bits for Embedded MATLAB code, accelerated simulation modes,\r\n            and automatic code generation\r\n         <\/li>\r\n         <li>New Apply Geometric Transformation block<\/li>\r\n         <li>New Bar Code Recognition demo<\/li>\r\n         <li>Enhanced Lane Departure Warning System demo<\/li>\r\n      <\/ul>\r\n   <\/div>\r\n   <p>For more details about these or any other product updates in R2008b, see the <a href=\"https:\/\/www.mathworks.com\/help\/relnotes\/index.html\">product release notes<\/a>.\r\n   <\/p><script language=\"JavaScript\">\r\n<!--\r\n\r\n    function grabCode_b5334f8193694167a058746c9a6b9a52() {\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='b5334f8193694167a058746c9a6b9a52 ' + '##### ' + 'SOURCE BEGIN' + ' #####';\r\n        t2='##### ' + 'SOURCE END' + ' #####' + ' b5334f8193694167a058746c9a6b9a52';\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        author = 'Steve Eddins';\r\n        copyright = 'Copyright 2008 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 author and copyright lines at the bottom if specified.\r\n        if ((author.length > 0) || (copyright.length > 0)) {\r\n            d.writeln('');\r\n            d.writeln('%%');\r\n            if (author.length > 0) {\r\n                d.writeln('% _' + author + '_');\r\n            }\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      \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_b5334f8193694167a058746c9a6b9a52()\"><span style=\"font-size: x-small;        font-style: italic;\">Get \r\n            the MATLAB code \r\n            <noscript>(requires JavaScript)<\/noscript><\/span><\/a><br><br>\r\n      Published with MATLAB&reg; 7.7<br><\/p>\r\n<\/div>\r\n<!--\r\nb5334f8193694167a058746c9a6b9a52 ##### SOURCE BEGIN #####\r\n%%\r\n% The MathWorks updates its product line twice per year on a \r\n% <https:\/\/www.mathworks.com\/products\/new_products\/release_model.html \r\n% regular schedule>.\r\n% Early last month we shipped our second release of the year, R2008b.\r\n%\r\n% My fellow bloggers have already been busy posting about the new release.  In\r\n% particular, Ken and Mike (with some help from Lori and James) have already\r\n% written several posts about some great new features in the MATLAB Desktop.\r\n% You should <https:\/\/blogs.mathworks.com\/community\/ click over> and read their\r\n% October posts.\r\n%\r\n% In MATLAB, the main thing that caught my eye specific to image processing is\r\n% the enhancements to |imread|.  We've added JPEG 2000 and netCDF\r\n% support.\r\n%\r\n% The <https:\/\/www.mathworks.com\/products\/image\/ Image Processing Toolbox> \r\n% has several enhancements.  We've made several\r\n% operations faster, including:\r\n%\r\n% * binary erosion and dilation (|imdilate|)\r\n% * binary hit-miss (|bwhitmiss|)\r\n% * range filtering (|rangefilt|)\r\n% * gray-level co-occurrence matrix (|graycomatrix|)\r\n%\r\n% We added a new corner detection function, |cornermetric|. It offers two\r\n% choices for the metric: Harris, and Shi \/ Tomasi.\r\n%\r\n% Also, the ROI functions such as |imrect|, |imellipse|, |impoly|, etc., offer a new\r\n% |createMask| method for converting the ROI to binary image mask form.\r\n%\r\n% Here's a timing of |imdilate| on a 1k-by-1k image using a 3-by-3 structuring\r\n% element.  (If you want to run this yourself, you'll need to download \r\n% <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/18798 timeit> \r\n% from the MATLAB Central File Exchange.)\r\n\r\nbw = repmat(imread('text.png'), 4, 4);\r\nse = strel(ones(3,3));\r\ntimeit(@() imdilate(bw, se))\r\n\r\n%%\r\n% That result is about 3 times faster than R2008a on my computer.\r\n%\r\n% You might also be interested in updates to the \r\n% <https:\/\/www.mathworks.com\/products\/imaq\/ Image Acquisition Toolbox> and\r\n% the \r\n% <https:\/\/www.mathworks.com\/products\/viprocessing\/ \r\n% Video and Image Processing Blockset>.  Key new features in the Image\r\n% Acquisition Toolbox include:\r\n%\r\n% * Support for display of high bit-depth cameras in the Video Preview window\r\n% * Enhancements to Image Acquisition Tool\r\n% * Support for additional DALSA\u00c2\u00ae hardware\r\n%\r\n% Video and Image Processing Blockset enhancements include:\r\n%\r\n% * Fixed-point and integer word size limit extended from 32 to 128 bits for\r\n% Embedded MATLAB code, accelerated simulation modes, and automatic code\r\n% generation  \r\n% * New Apply Geometric Transformation block\r\n% * New Bar Code Recognition demo\r\n% * Enhanced Lane Departure Warning System demo\r\n%\r\n% For more details about these or any other product updates in R2008b, see the\r\n% <https:\/\/www.mathworks.com\/help\/relnotes\/index.html \r\n% product release notes>.\r\n##### SOURCE END ##### b5334f8193694167a058746c9a6b9a52\r\n-->","protected":false},"excerpt":{"rendered":"<p>\r\n   The MathWorks updates its product line twice per year on a regular schedule. Early last month we shipped our second release of the year, R2008b.\r\n   \r\n   My fellow bloggers have already been... <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/steve\/2008\/11\/03\/r2008b\/\">read more >><\/a><\/p>","protected":false},"author":42,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[520,236,124,76,288,522,116,106,474],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/posts\/233"}],"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=233"}],"version-history":[{"count":1,"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/posts\/233\/revisions"}],"predecessor-version":[{"id":2644,"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/posts\/233\/revisions\/2644"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/media?parent=233"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/categories?post=233"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/tags?post=233"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}