以下内容摘自好友lyqmath新浪博客,在此借花献佛。
前言 下面这幅图像比较有意思,因为它不仅仅用来看是否色(盲)弱,还被俄罗斯军方用于招募军人进行初步筛选:
假如你不能马上分辨出以上图案: 1 25 2 29 3 45 4 56 5 6 6 8
不能识别图1中的数字:那么你有极强的攻击性,要给予大量的体力训练和洗冷水澡和;
不能识别图2中的数字:那么你的智力低于平均水平,不建议供职于需要操作复杂精密仪器的部门;
不能识别图3中的数字:极易沉醉于酒肉,要给予足够多的粮食供给,应给予更多的体力任务,不能和粮食供应后勤直接打交道;
不能识别图4中的数字:有些许的暴力倾向,但是可以委以重任,带领团队,有很好的纪律性;
不能识别图5中的数字:可能你是帅哥或美女,但是有潜在的同性恋倾向;
不能识别图6中的数字:有潜在的心理问题,需要进一步检查;
以上判断不能作为诊断标准!只能作为一个参考,上图得答案如下:
个人感觉第5幅图像不易识别。 分析 既然是用来测定色盲的图像,则经过简单的图像色彩分析,可以得出大致的处理结果。之所以采用色相层,也是考虑到了颜色区间的分布特征。
结果颜色空间转换,在HSV颜色空间的色相层,可以大致看到第5幅图像好像为6,当然这也可能收到了已有答案的影响,有不少人认为是64或0. 再经过简单的形态学操作,看看是否可以支持这种推测。 代码 - <font size="2">clc; clear all; close all;
- I = imread('c:\\ceshi.jpg');
- figure; imshow(I); title('原图像', 'FontWeight', 'Bold');
- I1 = rgb2hsv(I);
- h = I1(:, :, 1);
- figure; imshow(h); title('色相层图像', 'FontWeight', 'Bold');
- colormap(hsv)
- h1 = imclose(h, strel('disk', 5));
- h1 = imdilate(h1, strel('line', 6, 0));
- h1 = imdilate(h1, strel('line', 6, 90));
- figure; imshow(h1); title('形态学操作图像', 'FontWeight', 'Bold');
- colormap(hsv)</font>
复制代码总结 基于颜色区间作图像分割是一种简单直观的操作方法,同时借助颜色搭配可以得到很多视觉上不可思议的效果。如果能结合人体生物学,使用不同的颜色搭配,应该可以得到一些神奇的图像。
|