Python实现图像八大特效:毛玻璃、浮雕、油画、马赛克、素描、怀旧、流年、卡通。可自由切换调用。程序运行截图(毛玻璃特效):
![在这里插入图片描述](https://img-blog.csdnimg.cn/95ef4754827941ac91f6ddc79d064fee.png#pic_center)
import math
import cv2
import numpy as npclass ImgProcess:def __init__(self, img) -> None:self.src = cv2.imread(img)self.gray = cv2.cvtColor(self.src, cv2.COLOR_BGR2GRAY)self.h, self.w = self.src.shape[:2]
# 毛玻璃特效def glass(self):glassImg = np.zeros((self.h, self.w, 3), np.uint8)for i in range(self.h - 6):for j in range(self.w - 6):index = int(np.random.random() * 6)glassImg[i, j] = self.src[i + index, j + index]return glassImg# 浮雕特效def relief(self):reliefImg = np.zeros((self.h, self.w, 1), np.uint8)for i in range(self.h):for j in range(self.w - 1):edge = int(self.gray[i, j]) - int(self.gray[i, j + 1])    # 得到边缘val = edge + 120                                # 产生立体感if val > 255:val = 255if val < 0:val = 0reliefImg[i, j] = valreturn reliefImg#油画特效def oil(self):oilImg = np.zeros((self.h, self.w, 3), np.uint8)for i in range(2, self.h - 2):for j in range(2, self.w - 2):# 量化向量quant = np.zeros(8, np.uint8)# 4x4卷积核for k in range(-2, 2):for t in range(-2, 2):level = int(self.gray[i + k, j + t] / 32)# 量化计数quant[level] = quant[level] + 1# 求最大量化值及其索引valMax = max(quant)valIndex = list(quant).index(valMax)# 像素平均for k in range(-2, 2):for t in range(-2, 2):if self.gray[i + k, j + t] >= (valIndex * 32) \and self.gray[i + k, j + t] <= ((valIndex + 1) * 32):(b, g, r) = self.src[i + k, j + t]oilImg[i, j] = (b, g, r)return oilImg# 马赛克特效def mask(self):maskImg = np.zeros((self.h, self.w, 3), np.uint8)for i in range(self.h - 5):for j in range(self.w - 5):if i%5==0 and j%5==0 :for k in range(5):for t in range(5):(b, g, r) = self.src[i, j]maskImg[i + k, j + t] = (b, g, r)return maskImg# 素描特效def sketch(self):temp = 255 - self.graygauss = cv2.GaussianBlur(temp, (21, 21), 0)inverGauss = 255 - gaussreturn cv2.divide(self.gray, inverGauss, scale = 127.0)# 怀旧特效def old(self):oldImg = np.zeros((self.h, self.w, 3), np.uint8)for i in range(self.h):for j in range(self.w):b = 0.272 * self.src[i, j][2] + 0.534 * self.src[i, j][1] + 0.131 * self.src[i, j][0]g = 0.349 * self.src[i, j][2] + 0.686 * self.src[i, j][1] + 0.168 * self.src[i, j][0]r = 0.393 * self.src[i, j][2] + 0.769 * self.src[i, j][1] + 0.189 * self.src[i, j][0]if b > 255:b = 255if g > 255:g = 255if r > 255:r = 255oldImg[i, j] = np.uint8((b, g, r))return oldImg# 流年特效def fleet(self):fleetImg = np.zeros((self.h, self.w, 3), np.uint8)for i in range(self.h):for j in range(0, self.w):b = math.sqrt(self.src[i, j][0]) * 14g = self.src[i, j][1]r = self.src[i, j][2]if b > 255:b = 255fleetImg[i, j] = np.uint8((b, g, r))return fleetImg# 卡通特效def cartoon(self):num = 7   # 双边滤波数目for i in range(num):cv2.bilateralFilter(self.src, d = 9, sigmaColor = 5, sigmaSpace = 3)median = cv2.medianBlur(self.gray, 7)edge = cv2.adaptiveThreshold(median, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, blockSize = 5, C = 2)edge = cv2.cvtColor(edge, cv2.COLOR_GRAY2RGB)return cv2.bitwise_and(self.src, edge)process = ImgProcess('1.png')   #导入图片
glassImg = process.glass()
cv2.imshow("glass", glassImg)
cv2.waitKey(delay = 0)

更多Python代码大全,请关注微信公众号:Python代码大全。

Python实现图像八大特效(毛玻璃、浮雕、油画、马赛克等)相关推荐

  1. 实现图像特效之浮雕与雕刻

    引言 图像处理软件中,如PhotoShop,免费开源的位图形编辑GIMP软件中,对图像进行特效的浮雕或雕刻功能.本节介绍使用OpenCV实现图像特效之浮雕和雕刻相关知识,并贴出相关参考代码以及输出测试 ...

  2. [Python图像处理] 三十三.图像各种特效处理及原理万字详解(毛玻璃、浮雕、素描、怀旧、流年、滤镜等)...

    此文转载自:https://blog.csdn.net/Eastmount/article/details/111568397#commentBox 该系列文章是讲解Python OpenCV图像处理 ...

  3. Python 计算机视觉(补充版)—— 图像特效中的油画效果

    在前面的文章 Python 计算机视觉(十五)-- 图像特效处理 中我已经介绍了大部分的图像的特效处理,但还是忽略了油画特效的处理,在本篇文章中简单介绍一下油画特效的基本原理以及代码实现,感兴趣的小伙 ...

  4. Python代码图像特效算法制作

    毛玻璃特效 毛玻璃特效,是利用图像邻域内随机一个像素点颜色代替当前像素,从而实现毛玻璃一般朦胧模糊的效果. # 毛玻璃特效 def glass(self):     glassImg = np.zer ...

  5. 图像处理软件开发记录(六) 图像特效(浮雕、怀旧)

    专栏地址:http://blog.csdn.net/column/details/imagep.html 本篇文章主要记录一下图像处理软件中的图像特效(浮雕.怀旧)的实现过程. 图像浮雕效果 浮雕的算 ...

  6. 用python将图片变为油画_Python也能成为毕加索?我用Python给小姐姐画了幅油画

    原标题:Python也能成为毕加索?我用Python给小姐姐画了幅油画 小编的舍友最近交了一个女朋友,是念艺术系的,擅长画画!长的好看又漂亮,舍友经常在我耳边吹嘘,女朋友画的油画多么漂亮. 哎...经 ...

  7. Python 对图像进行base64编码及解码读取为numpy、opencv、matplot需要的格式

    Python 对图像进行base64编码及解码读取为numpy.opencv.matplot需要的格式 1. 效果图 2. 源码 参考 这篇博客将介绍Python如何对图像进行base64编解码及读取 ...

  8. 使用OpenCV和Python计算图像的“彩色度”

    使用OpenCV和Python计算图像"彩色度" 1. 效果图 2. 炫彩度量方法是什么? 3. 源代码 参考 你是否尝试过计算每个图像的炫彩值,并根据炫彩值对自己的图像数据集进行 ...

  9. 【python】图像映射:单应性变换与图像扭曲

    [python]图像映射:单应性变换与图像扭曲 单应性变换(Homography) 图像扭曲(仿射变换) 图中图 分段仿射扭曲 单应性变换(Homography) 单应性变换(Homography)即 ...

最新文章

  1. 用HttpWebRequest抓取网页,尝试自动重定向的次数太多”的错误,
  2. Verilog语言设计增加延时的正确方法
  3. windows批量修改文件、文件夹名工具:Bulk Rename Utility批量改名演示
  4. (58) 在计算字段提供搜索功能
  5. easyexcel 无模板写入_给位,问个问题,用easyExcel无模板导出数据时,怎么在指定单元格添加计算公式呢?...
  6. IDEA导入MySQL的jdbc驱动出现“java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver”
  7. C#的变迁史08 - C# 5.0 之并行编程总结篇
  8. Pytorch(2)-tensor常用操作
  9. 建立a8 linux开发环境,Fedora 14下建立 omap3530 开发环境 - 交叉编译器
  10. zabbix分布式监控部署proxy安装
  11. python编程100例-一,python编程100例
  12. 【渝粤教育】国家开放大学2018年秋季 0529-21T高级英语阅读(1) 参考试题
  13. 遥感高光谱分类文献阅读:Exploring Hierarchical Convolutional Features for Hyperspectral Image Classification
  14. 心理测量学信度计算机试题,心理测量学试题及答案
  15. ai交互剧本_AI可以制作音乐,剧本和诗歌。 电影呢?
  16. Webx系列之文件上传
  17. 使用Eclipse编写Helloworld!并通过Eclipse中的插件Egit上传至gethub.
  18. 六西格玛奠基人之张驰染阳杂记
  19. python认证证书有哪些-国家认证的Python技术工程师有什么能力要求?
  20. 三:JavaScript快速入门(脚本开发方向)

热门文章

  1. python重新编号功能_Python:PDB文件中原子和残基重新编号
  2. Python黑客攻防(八)密码破解攻击
  3. queryWrapper对同一字段进行两次eq() 是覆盖还是叠加查询
  4. Spring学习笔记 使用annotation配置实现Bean的auto-wiring (自动绑定)
  5. 程序每次读入一个正三位数,然后输出逆序的数字。注意,当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。
  6. Python爬虫(一)—— 中国大学排名
  7. 使用OpenCV-Python为照片添加不同滤镜(每天一个python小项目)
  8. JavaWeb网上商城
  9. Python描述 LeetCode 875. 爱吃香蕉的珂珂
  10. 给定桩号获取纵断面中的高程值(c# for civil3d)