matlab数字图像处理-找不同
一、问题描述
下面两幅图像中主要有三处不同,编程把它们找出来。
二、算法原理
读取两张图像,见图一,图二。
因为两图存在位置上偏移,直接作差导致极大误差,找不到两幅图的不同之处。所以先进行配准,找到两幅图的位置偏移。
任意取一图中一部分作为模板,见图三,这里取的是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数字图像处理-找不同相关推荐
- MATLAB数字图像处理系统-形状分类
MATLAB数字图像处理系统-形状分类 摘 要 数字图像处理是一门新兴技术,随着计算机硬件的发展,数字图像的实时处理已经成为可能,由于数字图像处理的各种算法的出现,使得其处理速度越来越快,能更好的为人 ...
- MATLAB 数字图像处理GUI二值图像实验
电信19-2 翁大弟 摘要 图像信息是人类获取信息的重要来源及利用信息的重要手段,数字图像处理的产生和迅速发展主要受三个因素的影响:一是计算机的发展:二是广泛的农牧业.环境.军事.工业等方面的应用需求 ...
- MATLAB数字图像处理复习概览
MATLAB数字图像处理 第1章 绪论 数字图像的概念 数字图像处理 第2章 数字图像处理基础 数字图像的生成与表示 数字图像的数值描述 第3章 图像基本运算 图像几何变换 几何变换基础 位置变换 几 ...
- 《精通Matlab数字图像处理与识别》一6.2 傅立叶变换基础知识
本节书摘来自异步社区<精通Matlab数字图像处理与识别>一书中的第6章,第6.2节,作者 张铮 , 倪红霞 , 苑春苗 , 杨立红,更多章节内容可以访问云栖社区"异步社区&qu ...
- matlab fspeical,MATLAB数字图像处理.doc
MATLAB数字图像处理 MATLAB常用图像操作 转换图像类型 例1.对一幅图像进行二值化处理,代码及结果如下: load trees BW=im2bw(X,map,0.4); imshow(X,m ...
- Matlab数字图像处理——图像处理工具箱Image Processing Toolbox
Image Processing Toolbox 图像处理工具箱包含的功能: 图像的读取和保存 图像的显示 创建GUI 图像的几何变换 图像滤波器设计及线性滤波 形态学图像处理 图像域变换 图像增强 ...
- Matlab数字图像处理——图像文件的读取
文章目录 一.Matlab中获取图像信息的函数 imfinfo 二.Matlab读取图像文件的函数 imread 三.Matlab保存图像文件的函数 imwrite 完整目录 一.Matlab中获取图 ...
- matlab数字图像处理课程设计报告,数字图像处理初步-实验1
MATLAB数字图像处理初步 通过实验对MatLab软件的基本使用基本的了解,学会使用MatLab软件来读取一个特定格式的图像,并通过相关的命令语句对图像进行格式转换.图像压缩.二值化等的处理,掌握利 ...
- matlab对于处理数字图像的优点,学习MATLAB数字图像处理经验谈
学习MATLAB数字图像处理经验谈 学习数字图像处理经验谈 (赵小川) 一.面向应用:层层分解.抓住要点 我们学习数字图像处理的最终目的还是应用,不管是用它来研制产品还是研发项目抑或是研究课题,都要用 ...
- 【基于matlab数字图像处理GUI代码】_数字图像处理考核论文_大作业_项目
基于matlab数字图像处理GUI代码 代码: function varargout = Image_processing_GUI(varargin) % IMAGE_PROCESSING_GUI M ...
最新文章
- MegEngine推理性能优化
- linux中编译C语言程序
- Ubuntu下Qt配置Opencv
- 转发程序无法决定链接类型
- Android 系统(259)---获取本机号码及sim卡信息
- 使用Decimal.js解决前端计算金钱失真问题
- 网优5g前景_网优行业的吐槽,附吐槽记录
- InitInstance函数
- 《大型网站技术架构:核心原理与案例分析》阅读笔记四
- 8.高等数学-两个重要的极限定理
- Symantec的SEP服务器(SEPM)从12.1 RU6MP5 升级到14 MP1 操作手册
- 腾讯2016实习招聘-安全岗笔试题答案详细解释
- 最近五年中秋节后第一天涨幅前十个股在此 沪深三七开 更多规律你来找
- nyoj 一笔画问题
- 【最终幻想15 国王之剑】制作介绍1:不再是游戏动画,而是“电影”制作
- 喷泉设备中的水幕效果
- 像素鸟多线程java_用java Swing做的小游戏像素鸟-Go语言中文社区
- 鸿蒙系统应用开发初体验(一)
- Java:方法的使用
- h3c S2000-EA 交换机DHCP Snooping支持Option 82功能的配置