设为首页收藏本站帮助中心
查看: 59|回复: 0
收起左侧

易语言实现将位图使用自定义算法转换成黑白单色位图二值化处理 (返回逻辑型)

[复制链接]
发表于 2020-12-25 18:15:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?加入我们

x
1.png

  1. .版本 2
  2. .支持库 BmpOperate
  3. .支持库 spec

  4. .程序集 程序集1

  5. .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码


  6. _临时子程序 ()  ' 在初始化代码执行完毕后调用测试代码
  7. 返回 (0)  ' 可以根据您的需要返回任意数值

  8. .子程序 _临时子程序
  9. .局部变量 位图, 位图

  10. ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
  11. 位图.载入文件 (“in.bmp”)
  12. 位图二值化 (位图, &二值化算法)
  13. 写到文件 (“out.bmp”, 位图.取位图数据 ())

  14. .子程序 二值化算法, 逻辑型
  15. .参数 颜色值, 整数型
  16. .局部变量 R, 字节型
  17. .局部变量 G, 字节型
  18. .局部变量 B, 字节型

  19. R = 取红色值 (颜色值)
  20. G = 取绿色值 (颜色值)
  21. B = 取蓝色值 (颜色值)
  22. 返回 ((R + G + B) ÷ 3 ≥ 192)

  23. .子程序 位图二值化, 逻辑型, 公开, 将位图使用自定义算法转换成单色位图,成功返回真,失败返回假
  24. .参数 位图, 位图, 参考
  25. .参数 二值化算法, 子程序指针, , 提供一个整数型参数:颜色值 返回逻辑型 (真为白色,假为黑色)
  26. .局部变量 XX, 整数型
  27. .局部变量 YY, 整数型
  28. .局部变量 X, 整数型
  29. .局部变量 Y, 整数型
  30. .局部变量 RGB, 整数型
  31. .局部变量 二值, 逻辑型

  32. XX = 位图.取宽度 () - 1
  33. YY = 位图.取高度 () - 1
  34. .如果真 (XX < 0 或 YY < 0 或 位图.取错误信息 () ≠ “”)
  35.     返回 (假)
  36. .如果真结束
  37. .变量循环首 (0, XX, 1, X)
  38.     .变量循环首 (0, YY, 1, Y)
  39.         RGB = 位图.取某点颜色 (X, Y)
  40.         .判断开始 (RGB = -1)
  41.             返回 (假)
  42.         .判断 (调用子程序 (二值化算法, , 二值, RGB) = 假)
  43.             返回 (假)
  44.         .判断 (位图.置某点颜色 (X, Y, 选择 (二值, #白色, #黑色)) = 假)
  45.             返回 (假)
  46.         .默认

  47.         .判断结束

  48.     .变量循环尾 ()
  49. .变量循环尾 ()
  50. 位图 = 位图.转换位深度 (1)
  51. 返回 (位图.取错误信息 () = “”)

  52. .子程序 取红色值, 字节型, , 取颜色的红色值
  53. .参数 颜色值, 整数型

  54. 返回 (到字节 (位与 (颜色值, 255)))

  55. .子程序 取绿色值, 字节型, , 取颜色的绿色值
  56. .参数 颜色值, 整数型

  57. 返回 (到字节 (右移 (位与 (颜色值, 65280), 8)))

  58. .子程序 取蓝色值, 字节型, , 取颜色的蓝色值
  59. .参数 颜色值, 整数型

  60. 返回 (到字节 (右移 (位与 (颜色值, 16711680), 16)))

复制代码

相关帖子

这个小可爱很神秘,什么都没留下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则