本周文件交换精选

我们最好的用户提交

将图像从灰度转换为彩色

内容

布雷特本周的选择是gray2rgb,通过Jeny Rajan

赢得几个MATLAB帽子之一!读下去! !

本周的博客以图像处理为中心,但它也包括了对MATLAB极客的挑战。珍妮,当然是
由于一些炫耀-在路上,珍妮!但我也会把MATLAB帽子发给四个读者,他们可以接受我提出的挑战
在下面。(谁说MATLAB中央大赛团队享受所有的乐趣?如果你感兴趣,请继续往下读……

灰度,RGB

通常,当我分析彩色图像时,我发现我可以在“灰色空间”而不是颜色空间中进行分析。那
我通常可以从一个或多个单独的彩色平面或灰度表示中获得我需要的所有信息
彩色图像的。将图像转换为灰度通常会简化——通常还会加速——这些彩色图像的处理。

创建一个灰度图像作为多个彩色平面的线性组合是一个常见的任务,也是一个图像处理工具箱方便的功能rgb2gray

最近,在浏览文件交换时,我发现了Jeny的文件,它允许以“另一种方式”转换图像。
也就是说,您可以提供一个灰度图像和一个彩色图像,您想要复制它的调色板gray2rgb将创建您的灰度图像的彩色版本,(在某种程度上)匹配第二个输入图像的颜色。我是
我很感兴趣,所以我摆弄了一下文件。下面是一个示例,展示了这个函数的功能:

图次要情节(2 2 1)imshow(“liftingbody.png”);次要情节(2 2 2)imshow(“gantrycrane.png”);colorIm = gray2rgb(“liftingbody.png”、“gantrycrane.png”);次要情节(2,2,3.5)imshow (colorIm)

很明显,很多人都发现了gray2rgb是有用的;这个文件在文件交换上已经有很多年了,并且每个月有将近100次的下载量。另外,
有几个“谢谢”和良好的评价。尽管如此,我还是想指出这个计算很长一段时间按…的顺序两个半分钟!Jeny讨论了两种提高速度的方法。可以对彩色图像进行子采样(以潜在的代价)
质量),或者可以使用“抖动采样”。不幸的是,没有提供示例来说明如何实现
这些节省时间的方法。

一个多部分的挑战

深入研究底层代码,我们可以看到Jeny的函数将两个输入图像转换为yCbCr。(灰度图像首先被扩展为3D,在红色、绿色和蓝色的彩色平面中复制信息。)然后,
对转换后的图像进行处理,生成输出图像逐像素(!),使用嵌套的for循环。这是可行的,但确实是缓慢的。我能想到几种提高性能的方法
我打赌我们的一些读者也能做到。

我会给第一个会的人发一个MATLAB帽完全复制的结果colorIm生成的上面vectorizingJeny的实现gray2rgb!

我还想到了解决这个问题的其他方法。例如,使用一个函数以前共享在文件交换中,我生成了这个彩色图像:

用我电脑上的功能创建这个图像只花了0.02秒。

Swag到第一个人谁能找到,从我的文件交换提交,一个函数,生成上面的图像
使用单行命令。(注意,这里还有一个图像处理工具箱函数,可以方便相同的计算,
不过你得“聪明地”使用它。)

接下来,我将给任何能够提出与Jeny的方法本质上不同的替代解决方案的人发送礼物,
和我用的那个。除了“本质上不同”之外,唯一的其他规则是它必须运行很快-例如1秒或更快,使用相同的输入图像。

现在问题来了:为什么要这样做?有人有转换灰度图像的实际用例吗
通过匹配第二幅图像的颜色来达到RGB ?如果有人能提供一个有趣的用例来修改图像
我很乐意听。首先是赃物引人注目的基本原理。(出于我们的目的,像“它看起来很酷”或"它创造了一种有趣的特殊效果"不算!)

感恩节快乐,matlab快乐!

像往常一样,这篇博文的评论是受欢迎的。或者给珍妮留言在这里

发布与MATLAB®R2012b

|
  • 打印
  • 发送电子邮件

评论

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