联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> C/C++编程C/C++编程

日期:2024-02-16 12:04

School of Engineering and Physical Sciences

Electrical Electronic and Computer Engineering

B31SE Image Processing

Fundamentals of Image Processing with Matlab


Matlab scripts a01images.m and b01neighbours.m demonstrate how to load and

image, get some image information, display an image, and perform some simple manipulations

with an image. Run these scripts on various images. Use matlab help if necessary.


If you feel yourself comfortable with these simple image processing manipulations and matlab

programming in general, you can start working on the following programming assignment.


This assignment consists of four parts (tasks).


Task 1a (4 points): Nonlinear image filtering. Given a grey-scale image (, ), consider

the following non-linear iterative process:


where K is a positive constant. Note that the weights {} depend on the pixel positions (, )

and the iteration number n. After a certain number of iterations, you should get results similar

to those shown in the picture below: small-scale image details are removed while salient image

edges are sharpened.


Your first task is to implement the above non-linear iterative procedure, perform a number of

experiments (with different images, different numbers of iterations, and various values of

parameter k).


A matlab script simple_averaging.m implements the above iterative scheme in the

simplest case when all the weights are equal to one: = 1.


Task 1b (4 points): Low-light image enhancement. The above filtering scheme can be used

for enhancing low-light images. Given a colour (RGB) image

Let (, ) be obtained from (, ) by applying the image filtering scheme from Part 1

described above. An enhanced version of the original colour (, ) is generated by


where    is a small positive parameter used to avoid division by zero. You are expected to get

results similar to those shown below:

original enhanced

Task 2 (4 points): Image filtering in frequency domain.

This part is independent of Parts 1 and 2 and devoted to using the Fourier transform for image

filtering purposes.


Matlab function fftshift shifts the zero frequency component of an image to the centre of

spectrum


Try Fourier4ip.m matlab script and see how the Fourier transform can be used for image

processing and filtering purposes.


Your task is as follows. Image eye-hand.png is corrupted by periodic noise. Find the Fourier

transform of the image, visualise it by using log(abs(fftshift(.))), as seen below.


An image corrupted by periodic ripples The image in the frequency domain



The four small crosses in the frequency domain correspond to the frequencies behind the

periodic noise. Use impixelinfo to locate the frequencies. Construct a notch filter (a band-stop

filter, you can use small-size rectangles or circles to kill the unwanted frequencies) and use it

to remove/suppress the periodic noise while preserving the image quality. The Part 3 of your

report must include the reconstructed image and the filter used in the frequency domain.


Task 3a (5 points): Image deblurring by the Wiener filter.

Given a grey-scale image (, ), consider the following non-linear iterative process:


(, ) = ?(, ) ? (, ) + (, )

,

where f (x,y) is the latent (unblurred) image, g(x,y) is the degraded image, h(x,y) is a known

blurring kernel, ? denotes the convolution operation, and n(x,y) stands for an additive noise.

Applying the Fourier transform to both sides of the above equation yields


(, ) = (, )(, ) + (, )

.

The Wiener filter consists of approximating the solution to this equation by


(, ) = [

1

(, )

|(, )|2

|(, )|2 +

] (, ) =

?(, )

|(, )|2 +

(, ) (1)

,

where ?(, ) is the complex conjugate of (, ). Implement Weiner filter restoration

scheme (1) and test it for different types of blur kernels (motion blur and Gaussian blur). In

your implementation of the Wiener filter restoration scheme (1) you may need to use

H = psf2otf(h,size(g));

See https://uk.mathworks.com/help/images/ref/psf2otf.html for details. See also deblur.m.


Task 3b (5 points): Image deblurring by ISRA. The matlab script deblur.m contains

simple implementations of two popular image deblurring schemes, the Landweber method

and the Richardson-Lucy method (in addition, the matlab built-in implementation of the

Wiener filter is presented in deblur.m). In particular, the Richardson-Lucy method consists

of the following iterative process


0(, ) = (, ), +1(, ) = (, ) ? (?(?, ?) ?

(, )

(, ) ? ?(, )

)


where ? stand for the pixel-wise multiplication and the pixel-wise division is also used. Let us

consider the so-called ISRA (Image Space Reconstruction Algorithm) method


0(, ) = (, ), +1(, ) = (, ) ? (

?(?, ?) ? (, )

?(?, ?) ? ?(, ) ? (, )

)


.

Your task is to implement ISRA and use PSNR graphs (see again deblur.m) to compare

ISRA against the Wiener, Landweber, and Richarson-Lucy methods for the two types of

motion blur and Gaussian blur considered in deblur.m.


Remark. In this particular example of additive gaussian noise, advantages of the Richardson-

Lucy and ISRA methods are not revealed.



Task 4 (3 points): Image filtering in frequency domain.


Matlab script handwritten_digit_recognition_simple.m provides you with a simple

application of ANN for handwritten digit recognition. Your task is to modify the hidden layers

of the network in order to achieve the accuracy higher than 93%. You are not allowed to use

CNN layers. You are not allowed to use more than 100 neurons in total for all your hidden

layers. You are not allowed to modify the training options.


You can observe that a higher accuracy can be easily achieved if convolutional layers are used:

handwritten_digit_recognition.m. You can get more information about various layers used

in ANN from https://uk.mathworks.com/help/deeplearning/ug/create-simple-deep-

learning-network-for-classification.html



Please submit a single report describing briefly your results achieved for Tasks 1, 2,

3, and 4 of the assignment. Together with the report, please submit your matlab scripts

implementing your solutions to Tasks 1, 2, 3, and 4.


版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp