油画特效的实现思路主要分以下五步:

  1. 将图片转换为灰色图片
  2. 将图片分割成小方块,例如7*7,10*10等
  3. 将像素值划分成若干等级,例如划分成4个等级,则0~63为等级一,64~127为等级二,128~191为等级三,192~255为等级四
  4. 将步骤2中每个小方块,计算其内各等级的像素点个数
  5. 使用统计出的平均值替换原像素值
import cv2
import numpy as npimg = cv2.imread('test.png',1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)        # 步骤一
dst = np.zeros((height,width,3),np.uint8)
for i in range(4,height-4):for j in range(4,width-4):arr = np.zeros(8,np.uint8)for m in range(-4,4):       # 步骤二 ,将图片划分为8*8的方块for n in range(-4,4):p1 = int(gray[i+m,j+n]/32)        # 步骤三,将像素值划分为8个等级,即每个等级32个值arr[p1] += 1         # 步骤四,统计每个等级像素点个数currentMax = arr[0]l = 0for k in range(8):    if currentMax < arr[k]:currentMax = arr[k]l = k# 步骤五,简化 均值for m in range(-4,4):for n in range(-4,4):if gray[i+m,j+n] >= (l*32) and gray[i+m,j+n] <= ((l+1)*32):(b,g,r) = img[i+m,j+n]dst[i,j] = (b,g,r)cv2.imshow('image',dst)
cv2.waitKey(0)

展示效果如下:

Tips:由于计算较慢,同学们在试验的时候,可以挑小一点的图片!

OpenCV:油画特效相关推荐

  1. opencv中图像处理油画特效

    opencv中图像处理油画特效 import cv2 import numpy as np import random import mathimg = cv2.imread(r"C:\Us ...

  2. Opencv实现图片的油画特效

    opencv实现油画特效 一.方法原理(步骤) 二.代码实现 三.运行结果 四.完整代码 一.方法原理(步骤) 1.将彩色图片转换为灰度图片(调用opencv的cvtColor()方法): 2.将图片 ...

  3. opencv图像特效之油画特效

    #油画特效 # 1 gray 2 分割成x*x的小方块 3 0-255划分成几个等级, 将2步结果映射到这个等级上 import cv2 import numpy as np img = cv2.im ...

  4. OpenCV入门(19):图片的油画特效

    import cv2 import numpy as npimg = cv2.imread("./mm1.jpg",1) cv2.imshow("src",im ...

  5. OpenCV油画效果

    OpenCV油画效果 油画效果 介绍 代码 结果 油画效果 介绍 图像在颜色空间默认颜色空间COLOR_BGR2GRAY中转换.对于图像中的每个像素,程序都会计算尺寸为2 * size + 1的相邻像 ...

  6. PS油画特效插件AKVIS Artwork for mac

    AKVIS ArtWork Plugin for Mac是一款运行在Mac平台上的PS油画特效插件,AKVIS ArtWork Plugin Mac版可以将照片自动转换为绘画,提供油画.水彩画.水粉画 ...

  7. 油画特效软件akvis artwork破解版安装及破解教程

    AKVIS ArtWork for Mac是Mac平台上一款优质的照片油画特效软件,akvis artwork破解版可以独立运行,也可作为Photoshop等照片编辑器的插件来使用,akvis art ...

  8. 【Unity3D Shader编程】之十 深入理解Unity5中的Standard Shader(二)屏幕油画特效的实现

    本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接: http://blog.csdn.net/poem_qianmo/article/details/49719247 作者:毛星云(浅 ...

  9. Unity3D Shader编程】之十 深入理解Unity5中的Standard Shader(二)屏幕油画特效的实现

    本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接: http://blog.csdn.net/poem_qianmo/article/details/49719247 作者:毛星云(浅 ...

最新文章

  1. c语言中字符串数组的地址存放以及%s输出单个字符导致程序崩溃的问题
  2. day03-字符编码与转换
  3. Pod资源管理(pod容器分类,k8s添加harbor私库,上传下载私库)
  4. 怎么才能点一下excel中的超链接就显示出图片?_Excel如何批量建立超链接,搭建工作台...
  5. python 北上资金_如何查看北向资金? 什么是北向资金 在股市里面,南代表的是HK,北代表的是大陆。北向 = 从南向北流动,那么北向资金就很好理解了,就是HK的... - 雪球...
  6. Ubuntu常用终端命令
  7. 你知道strong和b;i和em的区别吗?
  8. Unity3d+Gameframework:entity实体代码分析,基于StarForce
  9. 中专高一第一学期计算机应用期中基础考题,职业中专第一学期计算机应用基础WIN7和Word2010版期末考试题...
  10. Android SIGABRT的可能原因及开启手机Log日志
  11. Byte Pair Encoding
  12. 使用CAPL 内置函数 memcpy 和memcmp 处理数组的若干问题
  13. 单模光电转换器怎么接_光纤收发器(网桥,接口转换器),单模光纤收发器
  14. linux 查询挂载信息,linux 查询挂载信息
  15. 登录逻辑漏洞整理集合
  16. 初十hu测 T3.deep(点分治)
  17. IT痴汉的工作现状33-HTML5的春天是原生App的冬天?
  18. java 项目打包jar 的配置(springboot )
  19. 云计算机平台的特性,云平台对比传统平台特点分析
  20. 创维电视天赐系统成功安装第三方应用教程

热门文章

  1. 面试题分享(持续更新)
  2. python解析原理_Python语法垃圾回收机制原理解析
  3. 绿联nas骚操作,没事帮你压测下网络
  4. IntelliJ IDEA 常用的配置 【钢镚核恒】
  5. Session共享的解决方案
  6. 上交所、深交所配股的资金交收与股份交收流程
  7. 教你写响应式框架(四)
  8. simulink Simscape Mulitybody 导入CAD装配体分析-Inventor 为例
  9. 关闭Android Studio自动折叠方法
  10. 基于阿里巴巴EasyExcel实现对复杂Excel模板的填充