史蒂夫与MATLAB图像处理

图像处理的概念、算法和MATLAB

MATLAB默认图片背后的故事

图像显示了在MATLAB版本4,1990年左右。许多细心的用户注意到低级图像显示对象有默认的像素值。换句话说,如果您打过电话图像没有输入参数,它会显示一个小图像。如果你是一个MATLAB 4用户,你可能看到过这样的:

MATLAB 5发布时,一些用户发现默认图像改变了。

图像colormap(灰色(32)轴ij

一些用户还注意到新的默认图像中的像素值都不是整数。

h = findobj (gcf,“类型”,“图像”);cdata =得到(h,CData的);cdata (1:3, 1:3)
ans = 11.2307 12.4251 10.4251 14.4251 15.7483 13.7483 12.3938 13.7483 12.7483

有什么有趣的小数部分呢?

显示亮度图像(cdata -地板(cdata))

显然如此。

我现在承认——你可以责怪我。我告诉这个故事首次在公开场合上周在IEEE国际会议上图像处理在亚特兰大,佐治亚州。现在,亲爱的博客读者,你也能听到它。

我加入了MathWorks到1993年底。在1994年,公司举行了第一次员工慈善拍卖。的一个“项目”的报价是正确的选择的默认图像MATLAB 5,当时正在开发。作为新的“图像处理人”发展,我感到一些责任。(至少,这是我试图解释它后,我的妻子。)结果,另一个MathWorks开发商真的想赢得这个项目,所以赢得我最终支付一大笔钱。(这都是慈善机构,我一直提醒自己。)

当我赢得了拍卖,我不得不决定选择什么形象。在这段时间里,我经常听到来自用户的投诉,MATLAB只能处理双精度值。(这一直持续到1997年。)因为我听到太多关于这个问题,我决定使用所有的尾数部分新的默认图像。我征求的想法从我的开发人员应该包含什么。

这里有各种图像“隐藏”在不同位片默认图像像素值。(自己运行代码,下载这个小效用函数,bitslice)。

图像存储在5个最重要的部分是你经常看到的。这是我的大儿子。

defimage = pow2 (get (0,“DefaultImageCData”),47);杂志= 200;47岁的imshow (bitslice (defimage 51));

接下来的5位显示狗属于MathWorks开发人员。

imshow (bitslice (defimage, 42岁,46));

这是另一个MathWorks宠物。

37岁的imshow (bitslice (defimage 41));

这个著名的3×3的希尔伯特矩阵的逆矩阵。

imshow (bitslice (defimage, 36岁,36));

这是一个低分辨率版本的公司最初的标志。

imshow (bitslice (defimage, 35岁,35));

罗兰最喜欢的数字。

imshow (bitslice (defimage, 34岁,34));

3 x3的幻方。

33岁的imshow (bitslice (defimage 33));

我最小的儿子。

28岁的imshow (bitslice (defimage 32));

一个著名的幻方隐藏在Albrecht Durer Melancolia。

imshow (bitslice (defimage, 23岁,27));

我忍不住一种视觉上的双关。这是最初的MATLAB”八位形象。”(That'll tell you something about my sense of humor.)

imshow (bitslice (defimage、18、22));

罗兰4岁。

imshow (bitslice (defimage、13、16));

威尔金森,吉文斯,活力四射,从1964年Gatlinburg会议数值代数。

imshow (bitslice (defimage 9 12));

我。

imshow (bitslice (defimage、5、8));

原默认图像从MATLAB 4仍在那里。

imshow (bitslice (defimage 1 4));

最后,三位片的某些组合使一个黄色的猪数量17叠加。我被告知这是某种秘密笑话一定数学社区内。

r = bitslice (defimage, 0, 0);g = bitslice (defimage, 17岁,17);b = bitslice (defimage, 34岁,34);imshow (cat (r, g, b));

这——MATLAB默认图像的完整的故事。

函数b = bitslice (a、lowbit highbit)% BITSLICE (A、LOWBIT HIGHBIT)%%尺度返回值,最大是1.0。b = / 2 ^ (lowbit);b =修复(b);b = b / 2 ^ (highbit - lowbit + 1);b = b -修复(b);b = b / max (b (:));结束




发表与MATLAB®R2021a

|
  • 打印
  • 发送电子邮件

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。