java 图像特效之黑白 浮雕和底片
阅读本系列,请先看前言!谢谢
所谓黑白图片其实就是对图像进行去色,也就是灰度化,只要调用之前写过的灰度化函数即可。
底片的原理就是对RGB取补色即可。也就是将当前像素点的RGB值分别与255之差后的值作为当前点的RGB值,即
R = 255 – R;G = 255 – G;B = 255 – B;
浮雕其实就是一种边缘检测,在图像处理基础那个系列中,介绍过的sobel算子,Prewitt算子 或者是拉普拉斯算子我觉得都有着类似的效果
本文采用了新的梯度检测算法,相比之前介绍的边缘检测算子,效果稍弱,但是视觉效果好。
底片的代码:
public Image filter() {if(this.img.gray)return this.img; // Grayscale images can not be processedfor (int y = 0; y < this.img.h; y++) {for (int x = 0; x < this.img.w; x++) {int c = this.img.data[x + y * this.img.w];int A = (c >> 24) & 0xff; int R = (c >> 16) & 0xFF;int G = (c >> 8) & 0xFF;int B = (c >> 0) & 0xFF;R = 255 - R; G = 255 - G; B = 255 - B; this.img.data[x + y * this.img.w] = (A << 24) | (R << 16) | (G << 8) | B; }}return this.img;}
浮雕的代码:
public Image filter() {if(this.img.gray)return this.img; // Grayscale images can not be processedint[] d = new int[this.img.w*this.img.h]; //what's the fuck. it must be writed as this. not int[] d = this.img.data;for (int y = 0; y < this.img.h -1; y++) {for (int x = 0; x < this.img.w -1; x++) {int pc = this.img.data[x + y * this.img.w];int PR = (pc >> 16) & 0xFF;int PG = (pc >> 8) & 0xFF;int PB = (pc >> 0) & 0xFF;int c = this.img.data[x + 1 + (y+1) * this.img.w];int R = (c >> 16) & 0xFF;int G = (c >> 8) & 0xFF;int B = (c >> 0) & 0xFF;R = PR - R + 128; G = PG - G + 128; B = PB - B + 128; d[x + y * this.img.w] = (255 << 24) | (R << 16) | (G << 8) | B; }}this.img.data = d;this.img.toGray();return this.img;}
处理后的效果
其实除了浮雕之外,都可以用颜色矩阵来实现。
java 图像特效之黑白 浮雕和底片相关推荐
- java 浮雕_java 图像特效之黑白 浮雕和底片
所谓黑白图片其实就是对图像进行去色,也就是灰度化,只要调用之前写过的灰度化函数即可. 底片的原理就是对RGB取补色即可.也就是将当前像素点的RGB值分别与255之差后的值作为当前点的RGB值,即 R ...
- java 图像特效之老照片
阅读本系列,请先看前言!谢谢 让图像微微泛黄-是不是充满回忆呢- 本文先给出一种实现方法(参考:图像处理之老照片特效) 算法步骤如下: 1. 首先对图像重新计算RGB值,计算公式如下: int fr= ...
- java 图像特效之图像混合(溶图)
阅读本系列,请先看前言!谢谢 photoshop中的图层混合功能大家一定很熟悉.此功能可以根据指定模式,将2个图层进行混合,实现不同色彩风格的图像效果,也就是我们通常所说的溶图. 实现图像混合的原理其 ...
- java 图像特效之放大镜与哈哈镜
阅读本系列,请先看前言!谢谢 放大镜与哈哈镜原理上是一样的,我们只要找到相关映射即可. 如这张图所示.不同的映射会有不同的效果,如线性映射会产生放大缩小的感觉,凸函数则会是凸透镜,凹函数就是凹透镜,原 ...
- java油画转换,java 图像特效之油画
油画也算是一种常见的艺术品了,谁说咱们IT男不懂艺术-我们还能创造艺术,不多说,先说原理. 油画的算法很简单,对某一像素,用它附近随机一个像素来代替.没错就这么简单. 上代码: public Imag ...
- [Python图像处理] 二十四.图像特效处理之毛玻璃、浮雕和油漆特效
该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...
- 跟我学Python图像处理丨图像特效处理:毛玻璃、浮雕和油漆特效
摘要:本文讲解常见的图像特效处理,从而让读者实现各种各样的图像特殊效果,并通过Python和OpenCV实现. 本文分享自华为云社区<[Python图像处理] 二十四.图像特效处理之毛玻璃.浮雕 ...
- Java图片gh颜色渐变_强大的Java图像滤镜特效类库Java Image Filters
Java Image Filters是一款基于Java的图像处理类库,特别是在图像滤镜特效方面,Java Image Filters简直就是强大到天衣无缝.它几乎提供了PS上大部分的图像特效.比如反色 ...
- 图像处理软件开发记录(六) 图像特效(浮雕、怀旧)
专栏地址:http://blog.csdn.net/column/details/imagep.html 本篇文章主要记录一下图像处理软件中的图像特效(浮雕.怀旧)的实现过程. 图像浮雕效果 浮雕的算 ...
最新文章
- php接收多层数组中文乱码解决
- Quartz Java resuming a job excecutes it many times--转
- Django之url和视图函数
- 【Linux】一步一步学Linux——sh命令(225)
- 干货!Java字节码增强探秘
- 内存泄露检测 vld
- 有关Drools业务规则引擎的完整教程
- jeecgboot logback-spring.xml配置不生成新日志文件
- 解决使用sudo没问题,但是使用su会报错 su: Authentication failure 的问题
- skynet启动读取配置文件浅析(skynet_main.c)
- 浅谈双线程dp (nyoj61 nyoj712)经典【传字条】和【探 寻 宝 藏】
- 审计人员需要哪些计算机知识,审计人员应具备的知识与技能
- 谷歌浏览器所有页面都崩溃,设置都崩溃
- 官方rom提取原签名工具_从安卓官方版ROM中提取你喜欢的软件(单独安装包)
- 查看自己本地IP地址方法
- 通过此方法可以揭秘iPhone与其他蓝牙产品的交互流程啦,iPhone蓝牙HCI log的抓取方式详解
- Java工具使用(导读)
- neovim图标显示乱码,utf8字体显示乱码(Windows10和Centos安装nerd-fonts)
- 小米4可以刷入linux,给小米4刷上SailfishOS是怎样的体验?附刷机教程
- 用python手刃Leetcode(1):两数之和【简单题】