{"id":1102,"date":"2014-07-18T14:01:17","date_gmt":"2014-07-18T18:01:17","guid":{"rendered":"https:\/\/blogs.mathworks.com\/steve\/?p=1102"},"modified":"2019-11-01T11:13:45","modified_gmt":"2019-11-01T15:13:45","slug":"looking-around-the-file-exchange","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/steve\/2014\/07\/18\/looking-around-the-file-exchange\/","title":{"rendered":"Looking around the File Exchange"},"content":{"rendered":"<div class=\"content\">\n<p>Today I looked around the File Exchange for recent image processing submissions or updates. (You can do this yourself by searching using the tag <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/index?term=tag%3A%22image+processing%22\">image processing<\/a>.) Here are a few things that caught my eye.<\/p>\n<p><a href=\"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/47075-cmacminn-gettimestamp\">getTimeStamp<\/a>, by <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/authors\/480167\">Christopher MacMinn<\/a>, is an example of someone using the recently introduced linking between the File Exchange and GitHub. This is a straightforward function that illustrates how to use <tt>imfinfo<\/tt> to read useful metadata from a file. In particular, it shows how to extract the information that digital cameras stick into image files these days.<\/p>\n<p>The critical part of the code looks something like this (simplified a bit):<\/p>\n<pre>info = imfinfo(filename);\r\nif isfield(info,'DigitalCamera')\r\n    % There is digital camera information in the file.\r\n    % Get the time the picture was taken (as a string).\r\n    str = info.DigitalCamera.DateTimeOriginal;\r\nend<\/pre>\n<p>If you have data that originally came from ImageJ, you might find <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/authors\/119513\">Dylan Muir's<\/a> <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/32479-readimagejroi\">ReadImageJROI<\/a> function to be useful. Dylan originally submitted this in 2011, and he recently updated it to fix a couple of issues. The file is regularly downloaded and has received several good ratings.<\/p>\n<p><a href=\"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/27659-pivlab-particle-image-velocimetry--piv--tool\">PIVlab<\/a> is an impressive-looking application for partical image velocimetry created by <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/authors\/31547\">William Thielicke<\/a>. This contribution gets a LOT of traffic and has very high ratings. William has updated it regularly, and he has been responsive in the comment thread.<\/p>\n<p>Sometimes the author of a research paper will submit the MATLAB implementation of the paper's method to the File Exchange. That appears to be the case with <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/47111-white-blood-cells-detection-using-differential-evolution--de-\">An improved computer vision method for white blood cells detection (using differential evolution)<\/a> by <a href=\"https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/authors\/150569\">Erik<\/a>. I'm guessing that Erik is Erik Cuevas, the lead author of the paper quoted in the submission's description.<\/p>\n<p>I would be very interested to hear your opinions about the most useful image processing submissions on the File Exchange. Please post your comments here.<\/p>\n<p><script>\/\/ <![CDATA[\nfunction grabCode_139a38e5ad77438eb0db2de9996381b1() {\n        \/\/ Remember the title so we can use it in the new page\n        title = document.title;\n\n        \/\/ Break up these strings so that their presence\n        \/\/ in the Javascript doesn't mess up the search for\n        \/\/ the MATLAB code.\n        t1='139a38e5ad77438eb0db2de9996381b1 ' + '##### ' + 'SOURCE BEGIN' + ' #####';\n        t2='##### ' + 'SOURCE END' + ' #####' + ' 139a38e5ad77438eb0db2de9996381b1';\n    \n        b=document.getElementsByTagName('body')[0];\n        i1=b.innerHTML.indexOf(t1)+t1.length;\n        i2=b.innerHTML.indexOf(t2);\n \n        code_string = b.innerHTML.substring(i1, i2);\n        code_string = code_string.replace(\/REPLACE_WITH_DASH_DASH\/g,'--');\n\n        \/\/ Use \/x3C\/g instead of the less-than character to avoid errors \n        \/\/ in the XML parser.\n        \/\/ Use '\\x26#60;' instead of '<' so that the XML parser\n        \/\/ doesn't go ahead and substitute the less-than character. \n        code_string = code_string.replace(\/\\x3C\/g, '\\x26#60;');\n\n        copyright = 'Copyright 2014 The MathWorks, Inc.';\n\n        w = window.open();\n        d = w.document;\n        d.write('\n\n\n\n\n\n<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\n\n\n\n\n\n\\n');\n\n        d.title = title + ' (MATLAB code)';\n        d.close();\n    }\n\/\/ ]]><\/script><\/p>\n<p style=\"text-align: right; font-size: xx-small; font-weight: lighter; font-style: italic; color: gray;\"><a><span style=\"font-size: x-small; font-style: italic;\">Get<br \/>\nthe MATLAB code<noscript>(requires JavaScript)<\/noscript><\/span><\/a><\/p>\n<p>Published with MATLAB\u00ae R2014a<\/p>\n<\/div>\n<p><!--\n139a38e5ad77438eb0db2de9996381b1 ##### SOURCE BEGIN #####\n%%\n% Today I looked around the File Exchange for recent image processing\n% submissions or updates. (You can do this yourself by searching using the\n% tag\n% <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/index?term=tag%3A%22image+processing%22 % image processing>. Here are a few things that caught my eye.\n%\n% <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/47075-cmacminn-gettimestamp % getTimeStamp>, by\n% <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/authors\/480167 % Christopher MacMinn>, ia an example of someone using the recently\n% introduced linking between the File Exchange and GitHub. This is a\n% straightforward function that illustrates how to use |imfinfo| to read\n% useful metadata from a file. In particular, it shows how to extract the\n% information that digital cameras stick into image files these days.\n%\n% The critical part of the code looks something like this (simplified a bit):\n%\n%  info = imfinfo(filename);\n%  if isfield(info,'DigitalCamera')\n%      % There is digital camera information in the file.\n%      % Get the time the picture was taken (as a string).\n%      str = info.DigitalCamera.DateTimeOriginal;\n%  end\n%\n% If you have data that originally came from ImageJ, you might find\n% <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/authors\/119513 Dylan % Muir's>\n% <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/32479-readimagejroi % ReadImageJROI> function to be useful. Dylan originally submitted this in\n% 2011, and he recently updated it to fix a couple of issues. The file is\n% regularly downloaded and has received several good ratings.\n%\n% <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/27659-pivlab-time-resolved-particle-image-velocimetryREPLACE_WITH_DASH_DASHpivREPLACE_WITH_DASH_DASHtool % PIVlab> is an impressive-looking application for partical image\n% velocimetry created by\n% <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/authors\/31547 % William Thielicke>. This contribution gets a LOT of traffic and has very\n% high ratings. William has updated it regularly, and he has been\n% responsive in the comment thread.\n%\n% <<https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/screenshots\/7650\/cropped.jpg>>\n%\n% Sometimes the author of a research paper will submit the MATLAB\n% implementation of the paper's method to the File Exchange. That appears\n% to be the case with\n% <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/47111-an-improved-computer-vision-method-for-white-blood-cells-detectionREPLACE_WITH_DASH_DASHusing-differential-evolution- % An improved computer vision method for white blood cells detection (using % differential evolution)> by\n% <https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/authors\/150569 % Erik>. I'm guessing that Erik is Erik Cuevas, the lead author of the\n% paper quoted in the submission's description.\n%\n% <<https:\/\/www.mathworks.com\/matlabcentral\/fileexchange\/screenshots\/21834\/cropped.jpg>>\n%\n% I would be very interested to hear your opinions about the most useful\n% image processing submissions on the File Exchange. Please post your\n% comments here.\n\n##### SOURCE END ##### 139a38e5ad77438eb0db2de9996381b1\n--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\nToday I looked around the File Exchange for recent image processing submissions or updates. (You can do this yourself by searching using the tag image processing.) Here are a few things that caught... <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/steve\/2014\/07\/18\/looking-around-the-file-exchange\/\">read more >><\/a><\/p>\n","protected":false},"author":42,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[332,843],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/posts\/1102"}],"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=1102"}],"version-history":[{"count":7,"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/posts\/1102\/revisions"}],"predecessor-version":[{"id":2308,"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/posts\/1102\/revisions\/2308"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/media?parent=1102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/categories?post=1102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/steve\/wp-json\/wp\/v2\/tags?post=1102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}