一、问题描述

下面两幅图像中主要有三处不同,编程把它们找出来。

二、算法原理

读取两张图像,见图一,图二。
因为两图存在位置上偏移,直接作差导致极大误差,找不到两幅图的不同之处。所以先进行配准,找到两幅图的位置偏移。
任意取一图中一部分作为模板,见图三,这里取的是100×100的模板。在二图中取同样大小的区域。每次移动一个像素,与模板作差,求得这一区域的差和,找到差和的最小值,即为二图的相同位置,见图四,得到像素的位置(左上角)与一图像素位置(左上角)作差,即为位置的偏移量。
得到偏移量之后,对图二(有色图)进行移动,得到与图二相同位置的图,见图五。
图一与图五作差,变为灰度,找出两者的不同,见图六,找到相应像素的位置并在原图中使不同之处变成较为明显的颜色,这里用的是红色,见图七。

三、算法步骤

(1)读取图像并转灰度图像
(2)配准
(3)移动
(4)作差

四.程序代码(matlab)

%%
%绝对误差和算法(SAD)
clc;
clear;
close all;
f11=imread('hw1_painting_1.jpg');
f1=rgb2gray(f11);
f22=imread('hw1_painting_2.jpg');
f2=rgb2gray(f22);
figure(1);
imshow(f11);
%% 配准
% 取原图中一部分为模板
mask=f1(301:400,201:300);
figure(4);
imshow(mask);
[a,b]=size(f2);
[m,n]=size(mask);
N=n;
M=a;
dst=zeros(M-N,b-N);
for i=1:M-N         %子图选取,每次滑动一个像素  for j=1:b-N  temp=f2(i:i+N-1,j:j+N-1);   %当前子图  dst(i,j)=dst(i,j)+sum(sum(abs(temp-mask)));  end
end
abs_min=min(min(dst));
[u,v]=find(dst==abs_min);
figure(5);
imshow(f2);
hold on;
rectangle('position',[v,u,100,100],'edgecolor','r');
hold off;title('搜索图');
%% 移动
x=301-u; %x=2   偏移量
y=201-v; %y=-2
y=-y;
g=zeros(a,b,3);
g((x+1):a,1:b-y,:)=f22(1:a-x,(y+1):b,:);  %向左移x,向下移|y|
g(1:x,b-(y-1):b,:)=f22(a-(x-1):a,1:y,:);
g=uint8(g);
figure(2);
imshow(g);
%% 作差比较
i=rgb2gray(f11-g);
figure;imshow(i);
[r,c]=size(i);
for m=1:rfor n=1:cif i(m,n)>1f11(m,n,1)=255;f11(m,n,2)=0;f11(m,n,3)=0;endend
end
figure;
imshow(uint8(f11));

五、处理结果

图一:

图二:

图三:

图四:

图五:

图六:

图七:

matlab数字图像处理-找不同相关推荐

  1. MATLAB数字图像处理系统-形状分类

    MATLAB数字图像处理系统-形状分类 摘 要 数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成为可能,由于数字图像处理的各种算法的出现,使得其处理速度越来越快,能更好的为人 ...

  2. MATLAB 数字图像处理GUI二值图像实验

    电信19-2 翁大弟 摘要 图像信息是人类获取信息的重要来源及利用信息的重要手段,数字图像处理的产生和迅速发展主要受三个因素的影响:一是计算机的发展:二是广泛的农牧业.环境.军事.工业等方面的应用需求 ...

  3. MATLAB数字图像处理复习概览

    MATLAB数字图像处理 第1章 绪论 数字图像的概念 数字图像处理 第2章 数字图像处理基础 数字图像的生成与表示 数字图像的数值描述 第3章 图像基本运算 图像几何变换 几何变换基础 位置变换 几 ...

  4. 《精通Matlab数字图像处理与识别》一6.2 傅立叶变换基础知识

    本节书摘来自异步社区<精通Matlab数字图像处理与识别>一书中的第6章,第6.2节,作者 张铮 , 倪红霞 , 苑春苗 , 杨立红,更多章节内容可以访问云栖社区"异步社区&qu ...

  5. matlab fspeical,MATLAB数字图像处理.doc

    MATLAB数字图像处理 MATLAB常用图像操作 转换图像类型 例1.对一幅图像进行二值化处理,代码及结果如下: load trees BW=im2bw(X,map,0.4); imshow(X,m ...

  6. Matlab数字图像处理——图像处理工具箱Image Processing Toolbox

    Image Processing Toolbox 图像处理工具箱包含的功能: 图像的读取和保存 图像的显示 创建GUI 图像的几何变换 图像滤波器设计及线性滤波 形态学图像处理 图像域变换 图像增强 ...

  7. Matlab数字图像处理——图像文件的读取

    文章目录 一.Matlab中获取图像信息的函数 imfinfo 二.Matlab读取图像文件的函数 imread 三.Matlab保存图像文件的函数 imwrite 完整目录 一.Matlab中获取图 ...

  8. matlab数字图像处理课程设计报告,数字图像处理初步-实验1

    MATLAB数字图像处理初步 通过实验对MatLab软件的基本使用基本的了解,学会使用MatLab软件来读取一个特定格式的图像,并通过相关的命令语句对图像进行格式转换.图像压缩.二值化等的处理,掌握利 ...

  9. matlab对于处理数字图像的优点,学习MATLAB数字图像处理经验谈

    学习MATLAB数字图像处理经验谈 学习数字图像处理经验谈 (赵小川) 一.面向应用:层层分解.抓住要点 我们学习数字图像处理的最终目的还是应用,不管是用它来研制产品还是研发项目抑或是研究课题,都要用 ...

  10. 【基于matlab数字图像处理GUI代码】_数字图像处理考核论文_大作业_项目

    基于matlab数字图像处理GUI代码 代码: function varargout = Image_processing_GUI(varargin) % IMAGE_PROCESSING_GUI M ...

最新文章

  1. MegEngine推理性能优化
  2. linux中编译C语言程序
  3. Ubuntu下Qt配置Opencv
  4. 转发程序无法决定链接类型
  5. Android 系统(259)---获取本机号码及sim卡信息
  6. 使用Decimal.js解决前端计算金钱失真问题
  7. 网优5g前景_网优行业的吐槽,附吐槽记录
  8. InitInstance函数
  9. 《大型网站技术架构:核心原理与案例分析》阅读笔记四
  10. 8.高等数学-两个重要的极限定理
  11. Symantec的SEP服务器(SEPM)从12.1 RU6MP5 升级到14 MP1 操作手册
  12. 腾讯2016实习招聘-安全岗笔试题答案详细解释
  13. 最近五年中秋节后第一天涨幅前十个股在此 沪深三七开 更多规律你来找
  14. nyoj 一笔画问题
  15. 【最终幻想15 国王之剑】制作介绍1:不再是游戏动画,而是“电影”制作
  16. 喷泉设备中的水幕效果
  17. 像素鸟多线程java_用java Swing做的小游戏像素鸟-Go语言中文社区
  18. 鸿蒙系统应用开发初体验(一)
  19. Java:方法的使用
  20. h3c S2000-EA 交换机DHCP Snooping支持Option 82功能的配置

热门文章

  1. 尚硅谷redis视频
  2. 最新SCI影响因子发布!Nature屠榜,AI领域Top 1000期刊盘点
  3. svn 合并分支 (svn操作手册)
  4. ghost linux pe,winPE下安装系统ghost的详细教程
  5. etree不能使用,etree.HTML()不能使用。
  6. C#生成GS1码制二维码
  7. 阈值分割法——最佳阈值的选择问题
  8. java 进度条时间设置_java进度条时间显示怎么实现?
  9. VS2010 快捷键
  10. android仿黑客帝国字符雨