python-opencv 的图像素描
python-opencv 的图像素描
#参考PS素描的实现步骤,先去色将彩色图像装换成灰度图,复制去色层进行反色,
对反色图像进行高斯模糊,模糊后的图像叠加模式选择颜色减淡效果
import cv2
import numpy as np
def sketch_style(img): #自定义素描函数
height,width,n = img.shape #提取原图的长宽和通道
gray0 = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #灰度处理
img2 = np.zeros((height,width),dtype=‘uint8’) #创建一张像素值都为0的图像。类型为unit8即像素点的范围是0~255
#addWeighted各参数含义,1参数表示输入图,2表示第一张的透明度,3是第二张图,4是第二张透明度,5是像素点和之后再加数值
gray1 = cv2.addWeighted(gray0, -1, img2, 0, 255, 0) #像素值为0的图像与灰度图像进行叠加
cv2.imshow(“img0”, gray1) #输出图像
gray1 = cv2.GaussianBlur(gray1, (15, 15), 0) #高斯模糊
dst = cv2.addWeighted(gray0, 1, gray1, 0.9, 0) #滤波后的图像叠加
cv2.imshow(“sketch_img”, dst) #输出图像
cv2.imwrite("/home/pi/Pictures/wei1.jpg", gray1)
cv2.imwrite("/home/pi/Pictures/wei2.jpg", dst)
def main():
img = cv2.imread("/home/pi/Pictures/weixiaojiao.jpg")
sketch_style(img)
cv2.imshow(‘img’, img)
cv2.waitKey(0)
if name == ‘main’:
main()
最重要的函数是:
gray1 = cv2.addWeighted(gray0, -1, img2, 0, 255, 0) #像素值为0的图像与灰度图像进行叠加
void cvAddWeighted( const CvArr* src1, double alpha,const CvArr* src2, double beta,double gamma, CvArr* dst );
参数1:src1,第一个原数组.
参数2:alpha,第一个数组元素权重
参数3:src2第二个原数组
参数4:beta,第二个数组元素权重
参数5:gamma,图1与图2作和后添加的数值。不要太大,不然图片一片白。总和等于255以上就是纯白色了。
参数6:dst,输出图片
原图
效果图:
python-opencv 的图像素描相关推荐
- Python+OpenCV:图像修复(Image Inpainting)
Python+OpenCV:图像修复(Image Inpainting) 理论 Most of you will have some old degraded photos at your home ...
- Python+OpenCV:图像二进制鲁棒独立基本特征(BRIEF, Binary Robust Independent Elementary Features)
Python+OpenCV:图像二进制鲁棒独立基本特征(BRIEF, Binary Robust Independent Elementary Features) 理论 We know SIFT us ...
- Python+OpenCV:图像快速角点检测算法(FAST Algorithm for Corner Detection)
Python+OpenCV:图像快速角点检测算法(FAST Algorithm for Corner Detection) 理论 Feature Detection using FAST Select ...
- Python+OpenCV:图像Shi-Tomasi角点检测器
Python+OpenCV:图像Shi-Tomasi角点检测器 理论 The scoring function in Harris Corner Detector was given by: Inst ...
- Python+OpenCV:图像Harris角点检测(Harris Corner Detection)
Python+OpenCV:图像Harris角点检测(Harris Corner Detection) 理论 corners are regions in the image with large v ...
- Python+OpenCV:图像对比度受限自适应直方图均衡化(CLAHE, Contrast Limited Adaptive Histogram Equalization)
Python+OpenCV:图像对比度受限自适应直方图均衡化(CLAHE, Contrast Limited Adaptive Histogram Equalization) ############ ...
- Python+OpenCV:图像轮廓
Python+OpenCV:图像轮廓 轮廓是什么? 轮廓可以简单地解释为一条连接所有连续点(沿边界)的曲线,具有相同的颜色和强度. 轮廓线是形状分析.目标检测和识别的重要工具. 为了获得更好的精度,可 ...
- Python+OpenCV:图像金字塔
Python+OpenCV:图像金字塔 理论 通常情况下,我们使用固定大小的图像.但在某些情况下,我们需要处理(相同的)不同分辨率的图像. 例如,当搜索图像中的某些东西时,比如脸,我们不确定该物体在图 ...
- Python+OpenCV:图像梯度
Python+OpenCV:图像梯度(Image Gradients) 理论 OpenCV提供了三种类型的梯度滤波器或高通滤波器,Sobel, Scharr和Laplacian. 1. Sobel和S ...
- Python+OpenCV判断图像是黑底还是白底
前言 本篇博客使用Python+OpenCV判断图像是黑底还是白底,利用图像对角线上的黑白像素点个数进行判断,详情见下文. 本篇博客内容包含代码逻辑.说明.依赖.实现,这几部分.代码实现部分包含2种实 ...
最新文章
- [Effective JavaScript 笔记]第29条:避免使用非标准的栈检查属性
- ai如何旋转画布_「AI教程」使用AI制作3D立体文字效果
- java对象内存占用情况分析
- Windows下安装MinIO
- ASP.NET加密解密
- 10月22日Ajax培训日记
- 查看U盘是USB2.0还是USB3.0
- 《PMP学习笔记》11.7 子过程:实施风险应对
- 比热容相关的热量计算机应用,关于比热容的计算.ppt
- php做一个文章页面,wordpress主题制作教程(十):制作文章单页模板single.php
- 一阶电路暂态响应的结果分析。_第七讲 线性电路的过渡过程分析一
- 偶尔也需要强烈的孤独
- 上层应用程序是如何访问到底层驱动程序的呢?
- 详解凸优化、图神经网络、强化学习、贝叶斯方法等四大主题
- py使用polar绘制霍兰德职业测试雷达图
- 【Cherno的OpenGL视频】Uniforms in OpenGL
- js实现正则表达式匹配
- 别老盯着垃圾分类,“垃圾”创业还有许多的突破口
- 使用PHP生成不重复的随机数
- 睿智的目标检测18——Keras搭建Faster-RCNN目标检测平台