工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛
您的位置:软件 > 开发者网络 > 开发工具 > 开发专栏 > VB > 正文
VB图像处理之铅笔画算法和木雕算法
[文章信息]
作者:WallesCai
时间:2005-01-06
出处:CSDN
责任编辑:方舟
[文章导读]
在这一篇中我将和大家讲述铅笔画算法和木雕算法和它们的实现
advertisement
热点推荐
· 真没想到VB也可以这样用之指针技术
· 禁止QQ登录的方法
· 给你的XML文件做个数字签名
· ImageReady制作“焰火”小动画
· Java加密和数字签名编程快速入门
[正文]
  上一次,我们讲了锐化、柔化、扩散、雕刻这几个滤镜的算法和实现。请参考《VB图像处理之几个常用滤镜的实现

  在这一篇中我将和大家讲述铅笔画算法和木雕算法和它们的实现。为什么我要把这两个算法放在一起说呢,因为这两个算法是非常相似的。首先要说一下人的眼睛对于图像的观察,人的眼睛对于灰度(亮度)的敏感要远远大于对色彩的敏感,而人的眼睛对于暖色调和冷色调的敏感有要远大于对一般色彩的敏感度。

  经过大量的测试,人们得到了一个经验公式,来说明人的眼睛是如何识别亮度的:

Gray = Red * 0.3 + Green * 0.6 + Blue * 0.1

  而右因为人的眼睛对于绿色的敏感度最大,就有了一个更加近似的公式:

Gray = Green

  请大家再回想一下以前在用铅笔画眼睛看到的景色的时候,是如何做的呢?轮廓,对了,轮廓是什么呢?其实说白了就是灰度的一个跳变。因此我们只要设定一个阀值,把电脑上的图片中的像素的色彩转化为灰度,再把相邻的两个像素的灰度去比较,当灰度变化超过一定的量的时候,我们就判断它是轮廓。用铅笔把它描绘出来。

  有了这个思路,我们就很容易把这个算法写出来了。

Public Sub Pencil(Optional ByVal Sensitivity As Long = 25)
 Dim I As Long
 Dim L As Long
 Dim M As Long
 Dim N As Long
 Dim Col As Long
 Dim ColNext As Long
 'On Error GoTo ErrLine
 If Not CanPut Then Exit Sub
 Done = False
 TimeFilter = timeGetTime
 For I = 0 To OutPutWid - 1
  M = I + 1
  For L = 0 To OutPutHei - 1
   N = L + 1
   Col = ColOut(0, I, L) * 3 + ColOut(1, I, L) * 6 + ColOut(2, I, L)
   Col = Col \ 10 '当前点的灰度哦。
   ColNext = ColOut(0, M, N) * 3 + ColOut(1, M, N) * 6 + ColOut(2, M, N)
   ColNext = -ColNext / 10 '下一点的灰度哦。
   If Col + ColNext > Sensitivity Then '判断灰度变化是否超过设定的阀值
    ColOut(0, I, L) = 0 'RGB(0,0,0)表示黑色
    ColOut(1, I, L) = 0
    ColOut(2, I, L) = 0
   Else
    ColOut(0, I, L) = 255 'RGB(255,255,255)表示白色
    ColOut(1, I, L) = 255
    ColOut(2, I, L) = 255
   End If
  Next
 Next
 Done = True
 TimeFilter = timeGetTime - TimeFilter
 Exit Sub
ErrLine:
 MsgBox Err.Description
End Sub

  这里用到的所有全局变量都已经在前几章中用到,就不再重复说明了。

  原图:


  铅笔画效果:


  说到这里,那么木雕的原理就更简单啦,无非就是判断该点像素的灰度,如果灰度大于给定的阀值,就设它为白色,如果该点像素的灰度小于给定的阀值,就设定它为黑色。

  那么,这个算法,我就不写出来了,让给电脑前的读者,自己写一个试试看吧,不会难道你的。

  原图:


  木雕效果:


  这两篇讲的都是一些很简单的图像处理,下一篇讲给大家讲“灰度直方图”的概念,大家或许用过PhotoShop中的AutoLevel的功能吧,它可以把一张色彩很“别扭”的图像转换为很“舒服”的效果,那么就需要用到“灰度直方图”这个工具了,希望大家不要错过。

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 
发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容焦点新闻
  • VB图像处理之几个常用滤镜的实现
  • VB图像处理之二次线性插值的应用
  • VB图像处理之像素的获取和输出
  • VB实现图像在数据库的存储与显示
  • 在Visual Basic 6.0 中创建Word文档
  • 民营家电商排队造手机 设备商全面杀入
  • 英特尔澄清杨旭任职传闻 官方没宣布此消息
  • 国资委河北密制联通拆分方案
  • 垃圾邮件害人害企害国 清除垃圾邮件不手软
  • 中兴携手阿尔卡特 全球逐鹿CDMA
  • 用友总裁王文京:誓将ERP变成“大众消费”
  • 香港消费者委员会:数码相机最贵未必最好
  • 外电称中兴正评估西门子手机业务 或能并购
  • Advertisement

    天极无线


    奇妙科幻|美好风光|清风车影|漫画卡通|星座生肖|明星写真|动物世界
    老鼠爱大米
    挥着翅膀的女孩
    女人味
    栀子花开
    白月光
    刚刚好
    江南
    快乐崇拜
    亲爱的你怎么不在我身边
    小薇
    2002年的第一场雪
    有多少爱可以重来
    我的地盘
    七里香
    情人
     
    老鼠爱大米 老板电话
    冲动的惩罚 七里香
    我不是黄蓉 女生撒娇
    盛夏的果实 坚持到底
    孤单北半球 眉飞色舞
    挪威的森林 可爱女人
    最浪漫的事 老板电话

    CSEEK搜索