clear,
im=imread('1.png');
img=rgb2gray(im);
img=im;
size_im=size(im);
width=size_im(1);
height=size_im(2);
oilpaint=uint8(zeros(width,height)); %生成一个和原图同样大小的矩阵用0填充
radius=5;
intensity_level=150;
img=floor(img*(intensity_level/255));
for x=1:width
for y=1:height
intensity_counter=uint8(zeros(1,intensity_level+1));
r=uint8(zeros(intensity_level+1));
g=uint8(zeros(intensity_level+1));
b=uint8(zeros(intensity_level+1)); %生成一个一维矩阵intensity_counter
for i=(x-radius):(x+radius)
for j=(y-radius):(y+radius)
if i>0 && i<=width &&j>0 && j<=height
intensity =img(i,j)+1;
intensity_counter(intensity)=intensity_counter(intensity)+1;
r(intensity)=im(i,j,1);
g(intensity)=im(i,j,2);
b(intensity)=im(i,j,3); %将原图每个像素点的rgb三个通道的分量值赋给intensity,统计每个颜色出现的次数
end
end
end
[max_ index] =max(intensity_counter); %intensity_counter取最大值赋给index,即重复率最高的颜色
oilpaint(x,y,1)=r(index);
oilpaint(x,y,2)=g(index);
oilpaint(x,y,3)=b(index); %index的rgb通道值赋给最终输出的油画效果图像
end
end
figure,imshow(im,[]);
figure,imshow(oilpaint,[]);
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于MATLAB编程,用MATLAB编程的图像油画转换,代码完整,包含数据,有注释,方便扩展应用 1,如有疑问,不会运行,可以私信, 2,需要创新,或者修改可以扫描二维码联系博主, 3,本科及本科以上可以下载应用或者扩展, 4,内容不完全匹配要求或需求,可以联系博主扩展。
资源推荐
资源详情
资源评论
收起资源包目录
图像油画.rar (3个子文件)
1.jpg 43KB
1.png 204KB
oilpaint1.m 1KB
共 3 条
- 1
资源评论
神经网络机器学习智能算法画图绘图
- 粉丝: 2745
- 资源: 659
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功