Seize the Day
HSV/HSL转换到RGB色彩空间
处理图像时,有时候会遇到不同色彩空间转换的情况。比较常见的是HSV/HSL到RGB的转换。
HSV(HSB)/HSL简介
不同于RGB/CYMK,HSV和HSL是两种比较常见的基于圆柱坐标系的色彩表示方法。这种方法对颜色的表达,对人来说更直观,更易于感受。因此艺术家有时偏好使用 HSL或HSV 而不选择 三原色光模式(即RGB模型) 或 印刷四分色模式(即CMYK模型),因为它类似于人类感觉颜色的方式,具有较强的感知度。RGB 和 CMYK 分别是加法原色和减法原色模型,以原色组合的方式定义颜色,而 HSV 以人类更熟悉的方式封装了关于颜色的信息:“这是什么颜色?深浅如何?明暗如何?”。
色彩定义
- H :Hue(色相),色彩的基本属性,就是平常所说的颜色名称,如红色、黄色等。
- S :saturation(饱和度),色彩的纯度,越高色彩越纯,低则逐渐变灰,取0-100%的数值。
- V :value(色调),取0-100%。
- B :brightness(明度),取0-100%。
- L :lightness(亮度),取0-100%。
HSL 和 HSV 二者都把颜色描述在圆柱坐标系内的点,这个圆柱的中心轴取值为自底部的黑色到顶部的白色而在它们中间是的灰色,绕这个轴的角度对应于“色相”,到这个轴的距离对应于“饱和度”,而沿着这个轴的高度对应于“亮度”,“色调”或“明度”。
这两种表示在用目的上类似,但在方法上有区别。二者在数学上都是圆柱,但 HSV(色相,饱和度,色调)在概念上可以被认为是颜色的倒圆锥体(黑点在下顶点,白色在上底面圆心),HSL 在概念上表示了一个双圆锥体和圆球体(白色在上顶点,黑色在下顶点,最大横切面的圆心是半程灰色)。注意尽管在 HSL 和 HSV 中“色相”指称相同的性质,它们的“饱和度”的定义是明显不同的。
因为 HSL 和 HSV 是设备依赖的 RGB 的简单变换,(h, s, l) 或 (h, s, v) 三元组定义的颜色依赖于所使用的特定红色、绿色和蓝色“加法原色”。每个独特的 RGB 设备都伴随着一个独特的 HSL 和 HSV 空间。但是 (h, s, l) 或 (h, s, v) 三元组在被约束于特定 RGB 空间比如 sRGB 的时候就变成明确的了。
HSV 模型在 1978 年由计算机图形学先驱 Alvy Ray Smith 创立,它是三原色光模式的一种非线性变换。
…重元寺骑行
正月过半,乍暖还寒,然而阳光明媚,正是外出郊游的好时节。苏州是典型的江南水乡,不仅有周庄,甪直,同里千年古镇,水系也颇为发达,湖泊更是星罗棋布。而此时环湖骑行则是再合适不过的好主意了。
小西湖,是著名的大闸蟹产区——阳澄湖的内湖,隶属阳澄湖半岛度假区。这个度假区还在开发当中,目前主要有重元寺,莲池湖公园,小西湖这几个地方值得一去。湖边有一片很大的草地,绿茵葱葱,非常开阔。在距离市区这么近还有这么一处好地方,这里简直是世外桃源。每逢周末便能看到很多人自驾驱车前往,在草坪上搭帐篷,放风筝,这次还看到航模爱好者在试飞。沿湖修建了环湖自行车道,总长18公里,值得一提的是,还有一段3.5公里的水上赛道,让人一览湖光水色。
观潮与弄潮
春节期间看完了这本书,收获颇多。一开始看到介绍,我以为这是一本记述IT简史的书,看到后面,越发现远远不止这些。
观潮:时代的浪潮
IT技术人员,特别是作者这样的计算机科学家,历来对贝尔实验室有着无比的崇敬和向往。故事从贝尔实验室的东家 —— AT&T 公司开始,悉数介绍了 AT&T,IBM,Apple,Intel,Microsoft,Cisco,Yahoo,HP,Motorola,Google 等科技浪潮中各领风骚的著名企业,还有 Sun,Novell,Netscape,RealNetworks 这些“与机会失之交臂的公司”。回顾科技工业一百多年来的发展历程,分析了这些公司成功失败的原因。
在谈到微软时,吴军描述比尔·盖茨在起家时,包括微软成立后的十几年里,一直惯用冒险的空手套白狼手法抢占先机。当年操作系统领域的专家 Jim Allchin 对微软的技术根本瞧不上,他说,你们微软的东西是最烂的。而盖茨做到了保守和冒险的平衡,打动了 Allchin等一批技术大牛,完成研发上的布局。对于市场的策略则是:薄利多销和来者不拒。这个可以从早期的微软广告中窥见一斑,比如史蒂夫·鲍尔默做的DOS广告等等。
Cisco,我只知道这是一家卖路由器等网络设备的公司,还参与过GFW这样为虎作伥的项目。没想到思科的历史这么久远,尤其是善待离职创业的员工,以及对其创业公司的扶持和收购,真是十分高明的手法。
作者形容摩托罗拉是一家贵族式的公司,这个在模拟通信领域的佼佼者,在数字通信时代显得力不从心,依然孤傲地以技术为重心,却眼睁睁地看着木工厂起家的诺基亚超越了自己。在商业竞争中,光有技术显然是不行的。正如作者所言,“从技术角度看,铱星移动通信系统是非常成功的。这是真正的科技精品。我常常想,我们这些被成为高科技公司的互联网公司做到的东西和铱星系统相比,简直就像是玩具。” 君子之泽,五世而斩,虽然贵族式的摩托罗拉被Google收购,即便Google看中的是它若干的通信专利,但是至少它的技术创造依然造福于人。
…3.7.7内核的nVidia驱动安装
更新3.7.7内核之后,nVidia显卡驱动需要重新编译,但是这次和以前不一样,安装时报错导致无法继续。
问题分析
根据报错的信息,可以打开日志文件查看详细的原因:
less /var/log/nvidia-installer.log
日志信息如下:
-> Kernel source path: ‘/lib/modules/3.7.7-201.fc18.i686.PAE/source’ -> Kernel output path: ‘/lib/modules/3.7.7-201.fc18.i686.PAE/build’ ERROR: If you are using a Linux 2.4 kernel, please make sure you either have configured kernel sources matching your kernel or the correct set of kernel headers installed on your system.
If you are using a Linux 2.6 kernel, please make sure you have configured kernel sources matching your kernel installed on your system. If you specified a separate output directory using either the “KBUILD_OUTPUT” or the “O” KBUILD parameter, make sure to specify this directory with the SYSOUT environment variable or with the equivalent nvidia-installer command line option.
Depending on where and how the kernel sources (or the kernel headers) were installed, you may need to specify their location with the SYSSRC environment variable or the equivalent nvidia-installer command line option. ERROR: Installation has failed. Please see the file ‘/var/log/nvidia-installer.log’ for details. You may find suggestions on fixing installation problems in the README available on the Linux driver download page at www.nvidia.com.
大概原因是安装脚本无法确认系统版本,因而没有指定KBUILD_OUTPUT之类的参数。
…在Fedora上安装nVidia显卡驱动程序
自从Linus骂了nVidia一顿之后,似乎起到了点作用。前不久nVidia还和Steam联手,致力提高Linux下的游戏体验,发布了据说性能提升十分显著的R300驱动,不管是否如此,对桌面用户也是大有裨益的。本文参考了nVidia官方安装文档,结合本人的安装R310.19的经历整理而成。
系统需求
软件需求
Software Element Supported versions Check With… Linux kernel 2.4.22 and newer cat /proc/version XFree86* 4.0.1 and newer XFree86 -version X.Org* 1.0 - 1.13 Xorg -version Kernel modutils 2.1.121 and newer insmod –version glibc 2.0 ls /lib/libc.so.* > 6
硬件需求
当然是你的显卡要在驱动的支持列表内;
参见 Supported NVIDIA GPU Products
安装步骤
禁用nouveau
blacklist
- 操作前保证有足够的权限,打开文件
vi /etc/modprobe.d/balcklist.conf
- 找到 nvidiafb这一行,注释掉
#blacklist nvidiafb
- (可跳过,驱动会自动创建)新建文件 vi /etc/modprobe.d/disable-nouveau.conf,添加以下:
…blacklist nouveau options nouveau modeset=0
在Fedora上安装Ruby on Rails
Practically all the software in the world is either broken or very difficult to use. So users dread software. They’ve been trained that whenever they try to install something, or even fill out a form online, it’s not going to work. I dread installing stuff, and I have a Ph.D. in computer science. Paul Graham, Founders at Work
这几年一直在用AS3.0做开发,已经很久没有接触Linux了。博客上挂着Fedora的倒计时牌子,每次看到新版本倒计时一个接一个地陆续发布,这个周末重新装上了Fedora,学习一些其他的Web开发知识。虽说Ruby on Rails这几年不是很流行了,而且近期Twitter改用java引起了不小的震动,有些人认为RoR过时了,Ruby日薄西山了。我倒是觉得技术人员与其关注这些,不如去专注学习技术。
安装步骤
Fedora更新非常快,我用的是目前最新的Fedora 18。虽然按照文档和教程一步一步安装的,但还是遇到了很多问题。安装的方法有很多种,这个和Ruby语言的特性也很相似 😉 。考虑到环境配置和开发工作,使用RVM安装比较好,RVM可以管理多个Ruby版本和RubyGem,在开发时可以根据需要切换版本,配置环境也很方便。使用yum安装ruby,管理比较麻烦,不适合开发工作。
安装git和cURL
可以考虑先更新所有包
yum update
安装git
yum install git-core
安装curl
yum install curl
安装RVM
RVM,即Ruby Version Manager,可以管理多个版本Ruby,RubyGem,Rails,对开发来说非常有用。
…curl -L get.rvm.io | bash -s stable source ~/.rvm/scripts/rvm