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 的图像素描相关推荐

  1. Python+OpenCV:图像修复(Image Inpainting)

    Python+OpenCV:图像修复(Image Inpainting) 理论 Most of you will have some old degraded photos at your home ...

  2. Python+OpenCV:图像二进制鲁棒独立基本特征(BRIEF, Binary Robust Independent Elementary Features)

    Python+OpenCV:图像二进制鲁棒独立基本特征(BRIEF, Binary Robust Independent Elementary Features) 理论 We know SIFT us ...

  3. Python+OpenCV:图像快速角点检测算法(FAST Algorithm for Corner Detection)

    Python+OpenCV:图像快速角点检测算法(FAST Algorithm for Corner Detection) 理论 Feature Detection using FAST Select ...

  4. Python+OpenCV:图像Shi-Tomasi角点检测器

    Python+OpenCV:图像Shi-Tomasi角点检测器 理论 The scoring function in Harris Corner Detector was given by: Inst ...

  5. Python+OpenCV:图像Harris角点检测(Harris Corner Detection)

    Python+OpenCV:图像Harris角点检测(Harris Corner Detection) 理论 corners are regions in the image with large v ...

  6. Python+OpenCV:图像对比度受限自适应直方图均衡化(CLAHE, Contrast Limited Adaptive Histogram Equalization)

    Python+OpenCV:图像对比度受限自适应直方图均衡化(CLAHE, Contrast Limited Adaptive Histogram Equalization) ############ ...

  7. Python+OpenCV:图像轮廓

    Python+OpenCV:图像轮廓 轮廓是什么? 轮廓可以简单地解释为一条连接所有连续点(沿边界)的曲线,具有相同的颜色和强度. 轮廓线是形状分析.目标检测和识别的重要工具. 为了获得更好的精度,可 ...

  8. Python+OpenCV:图像金字塔

    Python+OpenCV:图像金字塔 理论 通常情况下,我们使用固定大小的图像.但在某些情况下,我们需要处理(相同的)不同分辨率的图像. 例如,当搜索图像中的某些东西时,比如脸,我们不确定该物体在图 ...

  9. Python+OpenCV:图像梯度

    Python+OpenCV:图像梯度(Image Gradients) 理论 OpenCV提供了三种类型的梯度滤波器或高通滤波器,Sobel, Scharr和Laplacian. 1. Sobel和S ...

  10. Python+OpenCV判断图像是黑底还是白底

    前言 本篇博客使用Python+OpenCV判断图像是黑底还是白底,利用图像对角线上的黑白像素点个数进行判断,详情见下文. 本篇博客内容包含代码逻辑.说明.依赖.实现,这几部分.代码实现部分包含2种实 ...

最新文章

  1. [Effective JavaScript 笔记]第29条:避免使用非标准的栈检查属性
  2. ai如何旋转画布_「AI教程」使用AI制作3D立体文字效果
  3. java对象内存占用情况分析
  4. Windows下安装MinIO
  5. ASP.NET加密解密
  6. 10月22日Ajax培训日记
  7. 查看U盘是USB2.0还是USB3.0
  8. 《PMP学习笔记》11.7 子过程:实施风险应对
  9. 比热容相关的热量计算机应用,关于比热容的计算.ppt
  10. php做一个文章页面,wordpress主题制作教程(十):制作文章单页模板single.php
  11. 一阶电路暂态响应的结果分析。_第七讲 线性电路的过渡过程分析一
  12. 偶尔也需要强烈的孤独
  13. 上层应用程序是如何访问到底层驱动程序的呢?
  14. 详解凸优化、图神经网络、强化学习、贝叶斯方法等四大主题
  15. py使用polar绘制霍兰德职业测试雷达图
  16. 【Cherno的OpenGL视频】Uniforms in OpenGL
  17. js实现正则表达式匹配
  18. 别老盯着垃圾分类,“垃圾”创业还有许多的突破口
  19. 使用PHP生成不重复的随机数
  20. 睿智的目标检测18——Keras搭建Faster-RCNN目标检测平台

热门文章

  1. 一本晚看了两年半的书--蓝海战略
  2. Canvas绘图之旅
  3. 第十四周项目5—平衡二叉树 包括二叉树的删除和插入
  4. 《Java黑皮书基础篇第10版》 第12章【习题】
  5. 省市县街道村五级联动
  6. jni调用 kotlin 方法是报错 kotlin An operation is not implemented: Not yet implemented
  7. 组播简介(二层组播)
  8. @SuppressWarnings 用法
  9. 征信报告记录有误,如何向金融机构申请异议处理?
  10. 用计算机0和1表达难舍之情,表达对友人的难舍和思念之情的诗句.