油画效果算法有两个参数,一个是滤波半径r,一个是量化位数q。

算法原理:

1. 首先根据量化位数将0-255划分为q个区间;

2. 然后根据滤波半径r拿到半径内的像素;

3. 统计像素在区间中出现的次数,找到次数最大的区间;

4. 计算次数最大区间所有像素平均值赋值给当前滤波像素即可。

matlab代码如下:

clear all;

close all;

clc;

r=1; %滤波半径

q=8; %量化位数

img=imread('lena.jpg');

[m,n]=size(img);

imshow(img)

imgn=zeros(m+2*r+1,n+2*r+1);

imgn(r+1:m+r,r+1:n+r)=img;

imgn(1:r,r+1:n+r)=flipud(img(1:r,1:n)); %扩展上边界

imgn(1:m+r,n+r+1:n+2*r+1)=fliplr(imgn(1:m+r,n:n+r)); %扩展右边界

imgn(m+r+1:m+2*r+1,r+1:n+2*r+1)=flipud(imgn(m:m+r,r+1:n+2*r+1)); %扩展下边界

imgn(1:m+2*r+1,1:r)=fliplr(imgn(1:m+2*r+1,r+1:2*r)); %扩展左边界

re=imgn;

for i=r+1:m+r

for j=r+1:n+r

w=imgn(i-r:i+r,j-r:j+r);

W=w(:);

buckets = cell(q+1,1);

bucketind = zeros(q+1,1);

for k=1:length(W)

ind = floor(W(k)*q/255)+1;

buckets{ind}=[buckets{ind};W(k)];

bucketind(ind) = bucketind(ind)+1;

end

[~,ind] = max(bucketind); %得到buckets中数最多的序号

re(i,j) = mean(buckets{ind});

end

end

figure;

imshow(re(r+1:m+r,r+1:n+r),[]);

原图:

结果:

标签:imgn,img,buckets,练习,bucketind,像素,油画,matlab,ind

来源: https://www.cnblogs.com/tiandsp/p/12726633.html

matlab 油画效果图,matlab练习程序(油画效果)相关推荐

  1. MATLAB学习笔记 MATLAB仿PhotoShop油画/毛玻璃/漩涡/锥形等特效

    1.漩涡效应(Swirl effect) 通过将坐标从笛卡尔坐标转换为极坐标,可以找到图像中每个点的角度和半径.         公式计算:         new[rho , theta] = ol ...

  2. 如何将MATLAB程序发布为独立的不依赖MATLAB环境可执行的程序包(基于Matlab R2015b版 )

    如何将MATLAB程序发布为独立的不依赖MATLAB环境可执行的程序包(基于MatlabR2015b版) 关键字:MatlabR2015b,可独立运行,可脱离Matlab环境,m文件,Matlab程序 ...

  3. MATLAB有趣或有用小程序合集

    最近编辑时间:2021-5-11 这是一些比较有趣,但是感觉不值得单独发文章的小程序合集: 不定时更新,大家可以闲的没事来淘个宝 这里写目录标题 1.字幕画 2.鱼形曲线 3.鼠标沙盘 4.地图寻路演 ...

  4. matlab抛物偏微分方程,抛物型方程差分求解 跪求MATLAB解抛物型偏微分方程的程序...

    为什么抛物线方程与圆方程联立不能使用韦达定理 很容易了解到,抛物线和圆的交点均在X轴上方\"其实这时你应该注意到一点就是,这两个交点的纵坐标是相等的,所以其实对应的是一个y值,也就是你列的一 ...

  5. html弄出油画效果,照片处理成油画 照片变油画软件|照片处理成油画效果方法

    怎么把照片处理成油画?一般来说油画画面所附着的颜料有较强的硬度,当画面干燥后,能长期保持光泽.凭借颜料的遮盖力和透明性能较充分地表现描绘对象,色彩丰富,立体质感强,嗯,感觉好厉害的样子,其实我们也是可 ...

  6. matlab特效实现,matlab 使用 实现三维建模源码,效果非常好,可以用于 点云数据的 262万源代码下载- www.pudn.com...

    文件名称: matlab下载  收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 132 KB 上传时间: 2015-05-08 下载次数: 144 提 供 者: 尚 ...

  7. matlab gui优化,matlabgui优化程序

    的优化工具箱提供了各种优化函数,这些优化 函数可以通过在命令行输入相应的函数名加以调用;此外 为了使用方便,MATLAB 还提供了图形界面的优化工具 (GUI Optimization ...... ...

  8. matlab中提供滤波器的种类有,求MATLAB巴特沃思低通滤波器程序

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:求MATLAB巴特沃思低通滤波器程序.回答:击响应不变法函数 [bz,az]=impinvar(b,a,Fs) [bz,az]=im ...

  9. matlab的exec程序,C++调用Matlab画图的一段程序

    劳动节闲来无事,写了一天程序,just for fun. 看,这是C++调用Matlab画图的一段程序.暂时不想多解释了,有兴趣的话,看看下面的代码吧. 以下几段代码由上到下,越来越旧.最上面的是最新 ...

最新文章

  1. 蒙特卡洛粒子滤波定位算法_粒子滤波——来自哈佛的详细的粒子滤波器教程【1】...
  2. 姓名、病史、医疗影像通通泄露,500万人数据库没密码随便看,AI医疗暴露危机...
  3. numpy(2)-非齐次线性方程组求解
  4. centos7中安装JDK8-281版本
  5. Memcached的配置,SSH项目中的整合(com.whalin),Memcached工具类,Memcached的代码调用
  6. python特性和属性的区别_什么是属性,什么是特性,有何不同?
  7. Ajax — 新闻列表
  8. Python SIP使用总结(WinLinux通用)
  9. java常用的空对象 null
  10. python 学习(pip工具的安装)
  11. 软件测试——测试计划
  12. 人工智能十大算法_套磁amp;科研 |南加利福尼亚大学空间科学研究所终身教授YaoYi Chiang带来数据挖掘算法研究课题...
  13. java jco sap 重连_Java连接SAP,使用SAPJCO3.jar
  14. 传统3D游戏引擎的Web化
  15. 现场总线-Can基础知识
  16. 【综述】方面级情感分析 Aspect-level Sentiment Classification
  17. linux双机热备软件 mysql,Linux Mysql 双机热备安装详解
  18. 数据挖掘导论实验报告01
  19. 如何在Word中重置用户选项和注册表设置
  20. 火狐打不开qq空间,说“建立安全连接失败”,解决方案

热门文章

  1. 进入古诗文网站个人中心,绕过登录
  2. 使用jar打war包或解压war包
  3. 读易互动对Web开发人员的要求 不局限于Web开发技术 之感想
  4. java与前端的区别_java与前端的区别
  5. openlayers移动端开发之微信公众号
  6. 苹果iPad Pro新品:7.9寸+手写笔+3D Touch
  7. 服务器如何开多个虚拟机,服务器运行多个虚拟机
  8. 最详细的window10虚拟机安装,手把手安装虚拟机,解决家庭版window找不到Hyper-V选项
  9. js es6 新特性
  10. kafka启动过程中遇到问题:系统找不到指定路径