实验要求:

Objective:

To know how to implement correlation of 2 functions in the frequency domain and, using the fast algorithms.

Main requirements:

Ability of programming with C, C++, or Matlab.

Instruction manual:

Download Figs. 4.41(a) and (b) and duplicate Example 4.11 to obtain Fig. 4.41(e). Give the (x,y) coordinates of the location of the maximum value in the 2D correlation function. There is no need to plot the profile in Fig. 4.41(f).

实验只是要求给出二维相关函数中最大值位置的(x,y)坐标,没有必要绘制图中的轮廓。

程序实现步骤:

1、将两幅图像的大小都拓展298×298;

2、两幅图像的每个像素都乘以(-1)^(x+y),使其在频域位于中心位置;

3、做傅里叶变换,转换到频域;

4、在频域两幅图像,一个与另一个的共轭相乘计算相关函数;

5、作傅里叶逆变换转换回空间域;

6、乘以(-1)^(x+y),得到最终结果。

要求使用的两幅图:

Figs. 4.41(a):

Figs. 4.41(b):

实验代码:

% Correlation in the Frequency Domain
close all;
clc;
clear all; %
img_f1 = imread('Fig4.41(a).jpg');
img_f2 = imread('Fig4.41(b).jpg'); [M1, N1] = size(img_f1);
[M2, N2] = size(img_f2); P = 298;
Q = 298;
img_fp1 = zeros(P, Q);
img_fp2 = zeros(P, Q);
img_fp1(1:M1, 1:N1) = img_f1(1:M1, 1:N1);
img_fp2(1:M2, 1:N2) = img_f2(1:M2, 1:N2); for x = 1:P
for y = 1:Q
img_fp1(x, y) = img_fp1(x, y) .* (-1)^(x+y);
img_fp2(x, y) = img_fp2(x, y) .* (-1)^(x+y);
end
end % 傅里叶变换
img_Fp1 = fft2(img_fp1);
img_Fp2 = fft2(img_fp2); % 求共轭
img_Fp = img_Fp2 .* conj(img_Fp1); % 傅里叶变换
img_fp = ifft2(img_Fp); % 乘以(-1)^(x+y)
for x = 1:P
for y = 1:Q
img_fp(x, y) = img_fp(x, y) .* (-1)^(x+y);
end
end img_fp = real(img_fp);
img_fp = mat2gray(img_fp); % 显示结果
imshow(img_fp); max_value = max(max(img_fp));
[row col] = find(img_fp == max_value); disp(['max value is : ', num2str(max_value)]);
disp(['row: ', num2str(row), ' col: ', num2str(col)]);

实验结果:



这是输出结果的图片,实验要求没必要显示出来。



最后求出的(x,y)位置的坐标。

数字图像处理实验(9):PROJECT 04-05,Correlation in the Frequency Domain 标签: 图像处理MATLAB 2017-05-25 10:14的更多相关文章

  1. 数字图像处理实验(总计23个)汇总 标签: 图像处理MATLAB 2017-05-31 10:30 175人阅读 评论(0)

    以下这些实验中的代码全部是我自己编写调试通过的,到此,最后进行一下汇总. 数字图像处理实验(1):PROJECT 02-01, Image Printing Program Based on Half ...

  2. ubuntu系统---ubuntu16.04 + virtualenv + py2.7 + tf1.5.0 + keras2.2.4 + opencv2.4.9 +Numpy1.14

    ubuntu16.04 + virtualenv + py2.7 + tf1.5.0 + keras2.2.4 + opencv2.4.9 +Numpy1.14 @https://www.liaoxu ...

  3. 数字图像处理实验(16):PROJECT 06-03,Color Image Enhancement by Histogram Processing 标签: 图像处理MATLAB 2017

    实验要求: Objective: To know how to implement image enhancement for color images by histogram processing ...

  4. 数字图像处理实验(15):PROJECT 06-02,Pseudo-Color Image Processing 标签: 图像处理MATLAB 2017-05-27 20:53

    实验要求: 上面的实验要求中Objective(实验目的)部分是错误的. 然而在我拿到的大纲中就是这么写的,所以请忽视那部分,其余部分是没有问题的. 本实验是使用伪彩色强调突出我们感兴趣的灰度范围,在 ...

  5. 数字图像处理实验(14):PROJECT 06-01,Web-Safe Colors 标签: 图像处理MATLAB 2017-05-27 20:45 116人阅读

    实验要求: Objective: To know what are Web-safe colors, how to generate the RGB components for a given jp ...

  6. 数字图像处理实验(12):PROJECT 05-03,Periodic Noise Reduction Using a Notch Filter 标签: 图像处理MATLAB 2017-0

    实验要求: Objective: To understand the principle of the notch filter and its periodic noise reducing abi ...

  7. 数字图像处理实验(11):PROJECT 05-02,Noise Reduction Using a Median Filter 标签: 图像处理MATLAB 2017-05-26 23:

    实验要求: Objective: To understand the non-linearity of median filtering and its noise suppressing abili ...

  8. 数字图像处理实验(10):PROJECT 05-01 [Multiple Uses],Noise Generators 标签: 图像处理MATLAB 2017-05-26 23:36

    实验要求: Objective: To know how to generate noise images with different probability density functions ( ...

  9. 数字图像处理实验(8):PROJECT 04-04,Highpass Filtering Using a Lowpass Image 标签: 图像处理MATLAB 2017-05-25 0

    实验要求: 高通滤波器可以通过1减去低通滤波器的传递函数得到. 使用公式 计算可以的得到 . 实验代码: % PROJECT 04-04 Highpass Filtering Using a Lowp ...

随机推荐

  1. Python之operator库

    operator库常用方法 Function Syntax add(a+b) a + b concat(seq1,seq2) seq1 + seq2 contains(seq, obj) obj in ...

  2. python Beautiful Soup的使用

    上一节我们介绍了正则表达式,它的内容其实还是蛮多的,如果一个正则匹配稍有差池,那可能程序就处在永久的循环之中,而且有的小伙伴们也对写正则表 达式的写法用得不熟练,没关系,我们还有一个更强大的工具,叫B ...

  3. sizeof与strlen()、递归优化题解

    一.sizeof sizeof是C/C++中的一个操作符(operator),确切的说是一个编译时运算符,参数可以是数组.指针.类型.对象.函数等.用于统计类型或者变量所占的内存字节数.由于在编译时计 ...

  4. git 查看、创建、切换、删除、重命名和推送分支

    1.查看本地所有分支:前面有 “*” 的是当前所处的分支 $ git branch test-A * test-B 2.查看本地和远程服务器的所有分支: $ git branch -a test-A ...

  5. 使用ajax提交form表单,formData

    http://www.cnblogs.com/zhuxiaojie/p/4783939.html formDatahttps://developer.mozilla.org/zh-CN/docs/We ...

  6. Data_Structure-绪论作业

    一.作业题目 仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子.分母均为整数且分母不为零的分数). 有理数基本运算: 构造有理数T,元素e1,e2分别被赋以分子.分母值 销 ...

  7. jenkins 离线安装插件 ,插件的下载地址

    http://updates.jenkins-ci.org/download/plugins/ 来源:https://blog.csdn.net/liyuming0000/article/detail ...

  8. java流类,快速统计出字符次数+++

    总结:学会给一个合适的命名,不要总是abc..虽然简单,但是不容易看懂,和方便去理解 package com.aini; import java.io.File; import java.io.Fil ...

  9. php读取文件夹文件,清理文件

    // 获取文件夹中图片的数量和名称 public function show_tmp_file() { $handler = opendir('./tmp/');//当前目录中的文件夹下的文件夹 $c ...

  10. fullCalendar动态获取数据

    fullCalendar http://fullcalendar.io/docs/event_data/events_function $('#calendar').fullCalendar({ he ...