`
sogotobj
  • 浏览: 639196 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Delphi图像处理 -- Photoshop浮雕效果

阅读更多

实现图像浮雕效果的一般原理是,将图像上每个像素点与其对角线的像素点形成差值,使相似颜色值淡化,不同颜色值突出,从而产生纵深感,达到浮雕的效果,具体的做法是用处于对角线的2个像素值相减,再加上一个背景常数,一般为128而成。这种算法的特点是简单快捷,缺点是不能调节图像浮雕效果的角度和深度。

用Photoshop实现图像浮雕效果,可以任意调节浮雕角度和深度(2个像素点的距离),还可以调整浮雕像素差值的数量。其基本算法原理和一般浮雕效果相同,但是具体做法不一样:对每个要处理的像素点,首先按照浮雕角度和深度计算处2个相应点的位置,然后计算这2个位置的颜色值,并使之形成差值,再乘上浮雕差值数量百分比,最后加上128的背景色。注意,这里计算的2个相应点是逻辑点,而不是实际的像素点,比如实现一个45度角,深度为3的图像浮雕效果,对每个像素点P(x, y),其对应的2个逻辑点的位置分别是P0(x - 3 * 0.7071 / 2, y - 3 * 0.7071 / 2)和P1(x + 3 * 0.7071 / 2, y + 3 * 0.7071 / 2),显然,对于这样的2个逻辑点,是不能直接从图像中找到其对应的像素点的,如果简单地对其四舍五入处理,将会造成大量的,由不同角度和深度而形成的相同的浮雕效果,这可不是我们想要的结果,而且使浮雕角度和深度参数失去了它原本的意义。为此,必须对原始图像按浮雕角度和深度进行缩放后,再对每个像素点进行浮雕效果处理,完毕再缩放回原图的大小,从而完成整个浮雕效果过程。下面是我经过反复试验后,写的Photoshop浮雕效果实现过程代码:

下面是个演示例子代码:

例子中的DrawImage过程见《Delphi图像处理 -- 图像显示》。

运行效果图:

和Photoshop浮雕效果对比,基本一致,说明我对其算法实现了完全“破解”,虽然这个算法不是很难,但也费了我不少时间。

文章中使用GDI+版本下载地址和说明见《GDI+ for VCL基础 -- GDI+ 与 VCL》。

文章中所用数据类型及一些过程见《Delphi图像处理 -- 数据类型及内部过程》,《Delphi图像处理 -- 图像像素结构与图像数据转换》和《Delphi图像处理 -- 图像缩放》。

尽管我十分努力,但水平有限,错误在所难免,欢迎指正和指导。邮箱地址:

maozefa@hotmail.com

后记:在文章评论中,有人说灰色浮雕不带彩,其实是不正确的,我测试过网上和书上的很多代码,也测试过Photoshop,都是有可能带彩的,在浮雕深度很小而且原始图像色彩较平淡时也有可能不带彩,可以把我上面的原图裁下来,用Photoshop一试就清楚了。当然,如果你要达到完全不带彩也很简单,在浮雕处理前做一个图像灰度化即可。如果灰度浮雕完全不带彩,程序代码可得到简化,速度至少可再提高60%以上。

本文代码于2010.5.20重新修订过。增加了拷贝形式的调整过程和响应回调函数的调整过程。代码中的ExecuteAbort过程和ExecuteProc过程见《Delphi图像处理 -- 图像像素结构与图像数据转换》。

分享到:
评论

相关推荐

    delphi-modbus-develop.zip_delphi_delphi-modbus-1.6.7_modbus_modb

    最新版 delphi-modbus-develop 1.6.7

    Delphi-OpenCV-Class-main

    Delphi binding for OpenCV Experimental Delphi binding for OpenCV 4.7.0 Development environment - Delphi 10.4, 11 x64 platform only

    Delphi-OpenCV-master

    Delphi-OpenCV (master) OpenCV version - 2.4.6 Development environment - Delphi XE2-XE4 Contributors: Laentir Valetov email:laex@bk.ru Mikhail Grigorev email: sleuthhound@gmail.com How to install: ...

    delphi-modbus-tcp-indy.7z

    这个"delphi-modbus-tcp-indy.7z"压缩包包含的是用Delphi编写的Modbus TCP组件,它基于两个不同的Indy版本——Indy 9和Indy 10。 Indy(Internet Direct)是Delphi和C++Builder中的一套网络库,提供了一组跨平台的...

    delphi-modbus-tcp三方控件,支持Delphi11

    标题中的"delphi-modbus-tcp三方控件,支持Delphi11"表明这是一个专为Delphi编程环境设计的第三方Modbus TCP库,用于在Delphi 11应用程序中实现Modbus通信。Modbus是一种广泛使用的工业通信协议,主要用于设备间的...

    Delphi-OpenCV-master.zip

    在计算机视觉领域,OpenCV(开源计算机视觉库)是一个不可或缺的工具,它提供了丰富的图像处理和计算机视觉算法。而Delphi,作为一款强大的面向对象的编程环境,以其高效、易用的特性深受开发者喜爱。当这两者结合时...

    Delphi-OpenCV-master delphi2010-XE8可用的OpenCV组件

    OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它包含了大量的图像处理和计算机视觉的算法,为开发者提供了丰富的功能,广泛应用于图像分析、识别、机器学习等领域。本文将重点讨论如何...

    ffmpeg-delphi-pascal-headers-3.0.2.zip_FFVCL_delphi vlc_ffmpeg_f

    "ffmpeg-delphi-pascal-headers-3.0.2.zip" 是一个针对 Delphi 用户的 FFmpeg 头文件包,包含了 FFmpeg 3.0.2 版本的 Pascal 头文件,适用于 Delphi 的 FFVCL 库。 FFVCL (FFmpeg Video Component Library) 是一个 ...

    Delphi26Binaries-2019.27-windows.pak

    Delphi26Binaries-2019.27-.pak

    数字图像处理----空间滤波----非线性滤波----梯度边缘增强----Delphi源代码

    在本文中,我们将深入探讨与"数字图像处理"相关的主题,特别是关注"空间滤波"、"非线性滤波"、"梯度边缘增强"这些技术,并结合使用Delphi编程语言实现源代码的角度来讨论。这些技术在图像分析、计算机视觉以及图像...

    Delphi xe4 实现图像类似浮雕效果的函数改进后可以处理多种格式图片

    在本文中,我们将深入探讨如何在Delphi XE4中实现图像处理,特别是创建类似浮雕效果的功能。原函数仅支持.bmp格式的图像,但经过改进后,它能够处理多种图像格式,为开发者提供了更大的灵活性。 首先,让我们理解...

    delphi图像处理源程序

    8. **执行文件(exe)**:提供的可执行文件可能是对源代码的编译结果,可以直接运行以查看图像处理效果,这对于验证源代码的正确性或快速测试非常有用。 毕业设计和演示文稿部分可能包含关于如何将上述知识点整合到...

    Kassl-dOPC4Delphi-Trial-Setup.exe

    Kassl-dOPC4Delphi-Trial-Setup.exe

    Delphi-Cross-Socket-master.zip

    "Delphi-Cross-Socket-master"中的项目可能包含了完整的客户端和服务端示例,通过查看源代码,我们可以学习如何配置Socket组件,如何编写事件处理代码,以及如何进行跨平台调试和测试。 总的来说,"Delphi-Cross-...

    Delphi图像处理单元

    **Delphi图像处理单元**是基于Delphi编程环境中用于图像操作和处理的组件或库。这个单元集成了GDI+(Graphics Device Interface Plus)技术,提供了丰富的图像处理功能,包括但不限于图像加载、显示、保存、裁剪、...

    Delphi-OpenCV-master 2.4.13

    本项目“Delphi-OpenCV-master 2.4.13”是将OpenCV库与Delphi集成的实践案例,适用于Delphi 2010到10.3的开发环境。Delphi是一款强大的面向对象的 Pascal 编程工具,常用于桌面应用开发,与OpenCV的结合使得开发者...

    Delphi数字图像处理及高级应用

    《Delphi数字图像处理及高级应用》是一本深入探讨如何使用Delphi进行高效、精确的数字图像处理技术的书籍。Delphi,作为一个强大的面向对象的编程环境,因其高效的执行速度和丰富的库支持,成为了开发图像处理软件的...

    Photoshop SDK for Delphi67

    - **创建自定义滤镜**:利用Photoshop的图像处理引擎,开发者可以编写自己的图像处理算法,实现独特的滤镜效果。 - **开发插件**:可以创建新的工具面板、菜单项,或者扩展Photoshop的功能,例如增加新的文件格式...

    Delphi【HMC-SHA签名、SHA加密、MD5加密、URL编码与解码、Base64编码与解码】

    Delphi提供了一系列的函数,如UrlEncode和UrlDecode,来处理这些情况。例如,空格通常被编码为"%20",而其他非ASCII字符也会转换为百分号加上它们的十六进制表示。 Base64是一种用于将二进制数据编码为ASCII字符的...

    Delphi7版本 - X-Superobject

    总的来说,X-SuperObject 是 Delphi 7 开发者处理 JSON 的理想选择,它以其易用性和强大功能,极大地提升了 Delphi 7 应用程序在数据交换方面的灵活性和效率。无论是在桌面应用还是服务器端开发中,它都能为 Delphi ...

Global site tag (gtag.js) - Google Analytics