一、获取代码方式

获取代码方式1:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

获取代码方式2:
完整代码已上传我的资源:【图像处理】基于matlab分形插值算法调换图片【含Matlab源码 197期】

备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、分形插值算法简介

1 分形插值
根据分形几何自相似性原理和送代函数系统ifs理论,将已知数据插值成具有自相似结构的曲线或曲面,其中每个局部都与整体自相似或统计自相似,因此,分形插值可以有效地避免传统插值方法对相邻插值点间局部变化特征的掩盖。
绝大多数情况下,图像处理是为了改善图像的视觉质量。因此,如何评价图像的质量是一个十分重要的问题。
在图像中,有些像素与相邻像素间灰度值存在突变,即存在灰度不连续性。这些具有灰度值突变的像素就是图像中描述对象的轮廓或纹理图像的边缘像素。在图像放大中,对这些具有不连续灰度特性的像素,如果采用常规的插值算法生成新增加的像素,势会使放大图像的轮廓和纹理模糊,降低图像质量。
迭代系统函数对于处理规则分形图形有明显的优势,但是对于自然界现象用随机分形处理会更加形象逼真。
2 案例
已知人脸和狗脸图片,使用分形插值算法调换图中的人脸和狗脸。

三、部分源代码

clear all
clc
function rgbPic = bw2rgb(bwPic)bwPicSize = size(bwPic);rgbPic = zeros(bwPicSize(1),bwPicSize(2),3);
I = imread('people.png');
I2 = imread('dog.png');doge = imresize(I2,[size(I,1) size(I,2)]);
gray = rgb2gray(I);
YCbCr = rgb2ycbcr(I);
heigth = size(gray,1);
width = size(gray,2);
for i = 1:heigthfor j = 1:widthY = YCbCr(i,j,1);Cb = YCbCr(i,j,2);Cr = YCbCr(i,j,3);if(Y < 80)gray(i,j) = 0;elseif(skin(Y,Cb,Cr) == 1)gray(i,j) = 255;elsegray(i,j) = 0;endendend
end
SE=strel('arbitrary',eye(5));
gray = imopen(gray,SE);
gray = imclose(gray,SE);a1=(255-bw2rgb(gray))/255;
next1=immultiply(I,a1);a2=bw2rgb(gray)/255;
next2=immultiply(doge,a2);add=imadd(next1,next2);[L,num] = bwlabel(gray,8);
STATS = regionprops(L,'BoundingBox');
n = 1;
result = zeros(n,4);
part = zeros(h,w);
for i = y:(y+h)for j = x:(x+w)if bImage(i,j) == 0part(i-y+1,j-x+1) = 255;elsepart(i-y+1,j-x+1) = 0;endend
end

四、运行结果

五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
[5]陈浩,方勇,朱大洲,王成,陈子龙.基于蚁群算法的玉米植株热红外图像边缘检测[J].农机化研究. 2015,37(06)

【图像处理】基于matlab分形插值算法调换图片【含Matlab源码 197期】相关推荐

  1. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  2. 【Matlab身份证识别】身份证号码识别【含GUI源码 014期】

    一.代码运行视频(哔哩哔哩) [Matlab身份证识别]身份证号码识别[含GUI源码 014期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  3. 【Matlab人脸识别】KL变换人脸识别【含GUI源码 859期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]KL变换人脸识别[含GUI源码 859期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  4. 【Matlab水果识别】苹果质量检测及分级系统(带面板)【含GUI源码 1613期】

    一.代码运行视频(哔哩哔哩) [Matlab水果识别]苹果质量检测及分级系统(带面板)[含GUI源码 1613期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1 ...

  5. 【Matlab树叶分类】BP神经网络植物叶片分类【含GUI源码 916期】

    一.代码运行视频(哔哩哔哩) [Matlab树叶分类]BP神经网络植物叶片分类[含GUI源码 916期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅 ...

  6. 【Matlab图像加密】正交拉丁方置乱算法图像加解密【含GUI源码 182期】

    一.代码运行视频(哔哩哔哩) [Matlab图像加密]正交拉丁方置乱算法图像加解密[含GUI源码 182期] 二.matlab版本及参考文献 一.代码运行视频(哔哩哔哩) [Matlab图像处理]自动 ...

  7. 【Matlab车牌识别】停车计费系统【含GUI源码 735期】

    一.代码运行视频(哔哩哔哩) [Matlab车牌识别]停车计费系统[含GUI源码 735期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MATLA ...

  8. 【Matlab破损识别】机器视觉+SVM玉米种子破损识别(带面板)【含GUI源码 1651期】

    一.代码运行视频(哔哩哔哩) [Matlab破损识别]机器视觉+SVM玉米种子破损识别(带面板)[含GUI源码 1651期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考 ...

  9. 【Matlab答题卡识别】hough变换答题卡判定与成绩统计【含GUI源码 752期】

    一.代码运行视频(哔哩哔哩) [Matlab答题卡识别]hough变换答题卡判定与成绩统计[含GUI源码 752期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [ ...

  10. 【Matlab答题卡识别】hough变换答题卡判定与成绩统计(带面板)【含GUI源码 1017期】

    一.代码运行视频(哔哩哔哩) [Matlab答题卡识别]hough变换答题卡判定与成绩统计(带面板)[含GUI源码 1017期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 ...

最新文章

  1. 信用评分卡模型开发及评估指标
  2. undefined: resolver.BuildOption undefined: resolver.ResolveNowOption 报错的解决办法
  3. visio的字体复制到word_学会这6个常用Word技巧,文档做起来又快又好看,办公如有神助...
  4. Thrift介绍与应用(三)—hbase的thrift接口
  5. Java植物名录程序_程序员用Java语言编写多线程应用程序,程序员能控制的关键性工作有两个方面:一是编写线程的_________方法;二是建立线程实例。...
  6. javascript运动学教程
  7. 分享一个同行的blog,UI方面的。
  8. 重设OS X (macOS)系统帐户密码的几种方法
  9. 火山安卓全屏侧滑布局器使用教程
  10. Vulkan----Mac环境搭建
  11. C# 电子签章的实现
  12. 从零开始用Kotlin结合Jetpack写一个五子棋
  13. 网络工程师成长日记389-防火墙
  14. 利用selenium自动刷新网页
  15. 面向对象 重写和重载
  16. 关于PWA落地问题的思考
  17. Deeplab Training notes
  18. Java EE Eclipse安装Tomcat插件 “工具栏不显示三只小猫”
  19. C++ 使用Intel Media SDK 实现H.264硬编码
  20. C++ 对txt文档进行编辑

热门文章

  1. libubox组件(1)——usock
  2. 深入理解JVM—Java 6 JVM参数配置说明
  3. Python学习总结之一 -- 基础篇
  4. 创建一个简单的WCF程序2——手动开启/关闭WCF服务与动态调用WCF地址
  5. POJ 3267 The Cow Lexicon 动态规划
  6. c语言--直接插入算法
  7. 10 Love Quotes Touch Your Soul at First Sight
  8. Atitit websocket 的前后端实现最佳实践t66 目录 1. 技术选型 1 2. 1.首先,在pom.xml引入如下jar包。Java-WebSocket-1.3.0.jar 1 3.
  9. Atitit.阿里云c盘 系统盘爆满解决方案
  10. Rust : actor模式 与 Actix库