网站首页 > 技术文章 正文
不知道你有没有使用过Instagram滤镜,它们非常方便,只需单击几个按钮,就可以变换我要发布的照片??。
你是否想过自己可以创建一个?答案是可以的!
在本文中,我将向你展示如何使用代码和示例图像来创建一些图像处理滤镜。
如果尚未安装以下python库,则需要安装它:
opencv-python matplotlib numpy
模糊滤镜
import cv2 import matplotlib.pyplot as plt im = cv2.imread('input-image.jpg') dst = cv2.GaussianBlur(im,(5,5),cv2.BORDER_DEFAULT) plt.imshow(dst) plt.show()
边缘检测滤镜
import cv2 import matplotlib.pyplot as plt im = cv2.imread('input-image.jpg') edges = cv2.Canny(im,100,300) plt.imshow(edges) plt.show()
复古风滤镜
import cv2 import numpy as np from matplotlib import pyplot as plt im = cv2.imread('input-image.jpg') rows, cols = im.shape[:2] # 创建高斯滤波器 kernel_x = cv2.getGaussianKernel(cols,200) kernel_y = cv2.getGaussianKernel(rows,200) kernel = kernel_y * kernel_x.T filter = 255 * kernel / np.linalg.norm(kernel) vintage_im = np.copy(im) # 对于输入图像中的每个通道,我们将应用上述滤波器 for i in range(3): vintage_im[:,:,i] = vintage_im[:,:,i] * filter plt.imshow(vintage_im) plt.show()
以上就是使用Python和OpenCV进行图像处理的代码示例。
你最喜欢哪个滤镜?在下面留下你的想法作为评论。
资源
- OpenCV[1]
[1]: https://opencv.org/
猜你喜欢
- 2024-09-11 给3D Slicer添加Python第三方插件库
- 2024-09-11 薅羊毛我愿称Python为最强,Python 自动化带你轻松赚钱
- 2024-09-11 史上最全的OpenCV入门教程!这篇够你学习半个月了!万字长文入门
- 2024-09-11 使用python实现简易的人脸检测(python人脸检测106关键点)
- 2024-09-11 机器视觉技术(一)边缘提取(机器视觉边缘检测)
- 2024-09-11 Python-OpenCV 16. 图像特征检测与描述算法
- 2024-09-11 Flask—远程查看行空板USB摄像头视频
- 2024-09-11 OpenCV+Python识别车牌和字符分割的实现
- 2024-09-11 在Fedora中安装OpenCV-Python | 二
- 2024-09-11 使用Python实现增强现实(AR)(python图像数据增强)
- 最近发表
-
- 如何在 Linux 上安装 Java_怎么在linux中安装jdk
- Linux中tar命令打包路径相关问题_linux怎么用tar打包一个目录
- 常用linux系统常用扫描命令汇总_常用linux系统常用扫描命令汇总表
- VM下linux虚拟机新建过程(有图)_linux虚拟机创建新用户命令
- 系统小技巧:迁移通过Wubi方式安装的Ubuntu系统
- 文件系统(八):Linux JFFS2文件系统工作原理、优势与局限
- 如何利用ftrace精确跟踪特定进程调度信息
- prometheus网络监控之fping-exporter
- hyper linux的实操步骤,hyper-v批量管理工具的使用指南
- 2021年,运维工程师笔试真题(二)(附带答案)
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)