2005-11-14

博主导师让其改进类似Photoshop描边插件功能,需将处理后丢失彩色信息的图像还原。博主通过将HSB和RGB转换,读取原图像和灰度图像像素信息,合并HSB输出RGB生成新位图。虽算法未优化,但在导师机子上运行基本满意。

我的直接导师老大找我,让我帮他改进一下他的一个软件。其中有这么一个类似Photoshop的描边的插件的功能:
查找指定的轮廓,进行描边,我随便拉了一个进行测试:
o_ColorFile.jpg        o_GrayFile.jpg
左图是原始图像,右图是经过一个算法处理后的图像;导师说按照这个算法处理(必须转换成灰度图象)彩色信息就丢失了,希望我能通过原始图像把图像彩色信息还原上去,这样他的这个算法就比较完美了。我的工作也很简单,仅仅是把HSB和RGB转换一下,第一次研究了一下GDI+,写一个.NET 的WinForm,然后扫描像素进行叠加。处理完毕后就是这个样子:
o_CSIEFilled_-1.jpg
这个东东有什么功能我还具体说不清楚,主要是老大说得还不太理解,慢慢研究吧。

我的处理流程:
1.读取原图像和处理后的灰度图象,转换成位图格式;
2.因为两幅图按照规范是一样大小,我就遍历灰度图象的每一个像素;
3.同一座标上从原图读取RGB信息,转换成HSB信息,取出色环(Hue)和亮度(Light)数值,丢掉饱和度(Saturation)值,从灰度图象中读取饱和度值。(.NET Framework中我没有找到HSB到RGB的转换,便把java里的Hsb2Rgb函数拿过来用了,没学过色彩,不清楚原理,不过java的代码稍作修改便可使用,结果经过暴力测试也完全正确。)
4.将读出的HSB合并,输出RGB,生成新的一幅位图,保存一下,完毕。
算法很烂,我甚至连优化性能的锁定内存都没有使用,老奔上运行一次可以消耗30秒左右时间,不过嘛,在老大的机子上跑只需要10秒不到,基本满意。不过可以完成任务了。

转载于:https://www.cnblogs.com/senyx/archive/2005/11/14/275777.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值