Advertisement

Fundamentals of Image Processing with Matlab Python

阅读量:

Java Python Fundamentals of Image Processing with Matlab

The assignment consists of four independent tasks.

Task 1a (4 points): 非线性图像滤波器. Consider a gray-scale image I(x, y) and the associated nonlinear iterative procedure:

where K represents a positive constant. Please note that the weights {Wij} are determined by both the pixel positions (x, y) and the iteration count n. This will result in images similar to Figure 1 after several iterations; while small-scale image details are diminished, significant edges remain well-defined.

Your first task is to carry out the above non-linear iterative procedure and conduct a series of experiments (involving varying images, iteration counts, and parameter k values).

A MATLAB脚本. simple_averaging.m 执行上述迭代方案, 在最简单的情形下, 当所有权重均设为一:w_{ij} = 1.

Task 1b (3 points): Low-light image enhancement. The proposed filter can be applied to enhance low-light images. For a given color RGB image, convert it to the HSV color space using MATLAB's rgb2hsv function and focus on its V component. Let U represent this processed component after applying the filter described in Task 1a (at least 20 iterations are recommended). An enhanced version of V can then be generated using this approach.

where r is a small positive parameter designed to prevent division by zero (setting its value as r = 0.01). The function E(x, y) replaces V(x, y) in your HSV image; after modifying the image, convert it back to the RGB space using MATLAB's hsv2rgb function (expected outcome similar to Figure X).

Include 3-4 images from the Dark Face dataset

https://www.kaggle.com/datasets/ironheadboya/darkface

in your experiments with low-light image enhancement.

Task 1c (3 points): Face recognition technology or object recognition framework in dark and enhanced images

Access a freely available program (Matlab/Python) for implementing facial or object recognition tasks in images. Utilizing the program, identify facial features or objects in dark imaging scenarios and assess their detection performance when processed with your previously developed Matlab code. Evaluate whether enhancing dark images enhances facial or object recognition performance.

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

This task is focused on applying the Fourier transform in the context of image filtering purposes.

Matlab operation fftshift moves the DC component of an image matrix to its center.

Open the Fourier4ip.m MATLAB file and explore its applications in image processing and filtering through the Fourier transform.

Please refer to the following task: The image 'eye-hand.png' exhibits periodic noise patterns. Your objective is to determine its Fourier transform and apply a logarithmic transformation to visualise the FFT result, as demonstrated in the subsequent section.

The four small crosses in the frequency domain indicate specific frequencies linked to periodic noise. impixelinfo can be utilized to identify these particular frequencies. A notch-shaped filter (such as a band-stop filter, which can be implemented using small-size rectangles or circles) should be designed and applied to eliminate/reduce periodic interference while maintaining image quality. The third section of your report must include both the reconstructed image and details about this notch-shaped filter used in the frequency domain.

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

Given a gray-scale image I(x, y), address the following nonlinear iterative procedure.

,

where f (x,y) represents the latent (unblurred) image, g(x,y) represents the degraded image, h(x,y) is a given blurring kernel, expresses the convolution operation, and n(x,y) denotes additive noise. Applying Fourier transform to both sides of this equation results in

.

The Wiener filter involves solving for the optimal solution through mathematical approximation.

,

where H(u, v) denotes its complex conjugate. To implement the Wiener filter restoration scheme mentioned in equation (1), evaluate its performance across various types of blur kernels such as motion blur and Gaussian blur. In your implementation, you may need to utilize techniques like solving a system of linear equations or incorporating prior knowledge about image statistics.

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

Refer to https://uk.mathworks.com/help/images/ref/psf2otf.html for further information. Additionally, deblur.m is referenced.

Task 3b (4 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

where denote the pixel-wise multiplication and division operations, which are also employed. Let us consider the ISRA (Image Space Reconstruction Algorithm) method, commonly referred to as

.

为了实现去模糊算法,请参考deblur.m中的PSNR图表进行对比分析。具体而言,请将ISRA与其他方法(如Wiener法、Landweber法和Richardson-Lucy法)进行比较。

Remark. Considering this specific case of additive gaussian noise, the Richardson-Lucy and ISRA methods do not demonstrate any significant benefits.

Task 4: A fundamental artificial neural network approach to handwritten digit classification, worth 3 marks.

The MATLAB script handwritten_digit_recognition_simple.m offers as a straightforward implementation of artificial neural networks (ANN) for recognizing handwritten digits. It requires you to adjust the configuration of your network's hidden layers, aiming for a classification accuracy exceeding 93%. Additionally, you must ensure that your network's total hidden neurons do not exceed 100. Furthermore, you cannot incorporate convolutional neural network (CNN) layers into this exercise, and all training parameters must remain unchanged.

It is possible to notice that high levels of accuracy can be readily attained when convolutional layers are employed.

The MATLAB file handwritten_digit_recognition.m provides guidance on implementing a deep learning network for handwritten digit classification. Additionally, the documentation offers detailed information on different layers within an artificial neural network (ANN). For further details, visit the link provided.

I kindly request that you submit a concise report summarizing your outcomes obtained in completing Tasks1 through Task4 of this assignment. In addition to this document containing your task outcomes from Tasks1 through Task4 (referred to as this assignment), I would appreciate it if you could also include an appendix comprising both MATLAB (and possibly Python) code snippets implementing the solutions developed for these tasks.

全部评论 (0)

还没有任何评论哟~