Matlab Research Projects

Matlab research projects are implemented based on Matlab simulation coding which includes algorithms, techniques and methodologies. Matlab Research projects are chosen based on applications of image processing. Matlab has sophisticated data structures, object oriented programming, editing and debugging tools to develop research projects in an effective manner.

  • Identifying different stages of diabetic retinopathy.
  • Image Registration.
  • 3D Reconstruction Modeling.
  • Human perception of evolving geographic patterns.
  • Spatio-temporal structures and analysis.
  • Automatic 3D delineation of highly aggressive brain tumors.
  • Cloud based volumetric rendering of medical images.
  • Multi-Resolution Techniques.
  • Stochastic Models.
  • Scientific Imaging.
  • Computer Vision.
  • Remote Sensning.
  • Video Analysis.
  • Image Segmentation and Classification.
  • Neural Network Algorithm.
  • Region Growing Algorithm.
  • Canny Edge Detection Algorithm.
  • Fuzzy c-Means Algorithm.
  • Correlation Analysis Algorithm.
  • Parameter Estimation Algorithm.

Example Code for Region growing Algorithm:

function J=regiongrowing(I,x,y,reg_maxdist)
if(exist(‘reg_maxdist’,’var’)==0), reg_maxdist=0.2; end
if(exist(‘y’,’var’)==0), figure, imshow(I,[]); [y,x]=getpts; y=round(y(1)); x=round(x(1)); end
J = zeros(size(I)); % Output
Isizes = size(I); % Dimensions of input image
reg_mean = I(x,y); % The mean of the segmented region
reg_size = 1; % Number of pixels in region
% Free memory to store neighbours of the (segmented) region
neg_free = 10000; neg_pos=0;
neg_list = zeros(neg_free,3);
pixdist=0; % Distance of the region newest pixel to the regio mean
% Neighbor locations (footprint)
neigb=[-1 0; 1 0; 0 -1;0 1];
% Start regiogrowing until distance between regio and posible new pixels become
% higher than a certain treshold
while(pixdist<reg_maxdist&&reg_size<numel(I)) % Add new neighbors pixels for j=1:4, % Calculate the neighbour coordinate xn = x +neigb(j,1); yn = y +neigb(j,2); % Check if neighbour is inside or outside the image ins=(xn>=1)&&(yn>=1)&&(xn<=Isizes(1))&&(yn<=Isizes(2)); % Add neighbor if inside and not already part of the segmented area if(ins&&(J(xn,yn)==0)) neg_pos = neg_pos+1; neg_list(neg_pos,:) = [xn yn I(xn,yn)]; J(xn,yn)=1; end end % Add a new block of free memory if(neg_pos+10>neg_free), neg_free=neg_free+10000; neg_list((neg_pos+1):neg_free,:)=0; end
% Add pixel with intensity nearest to the mean of the region, to the region
dist = abs(neg_list(1:neg_pos,3)-reg_mean);[pixdist, index] = min(dist);
J(x,y)=2; reg_size=reg_size+1;
% Calculate the new mean of the region
reg_mean= (reg_mean*reg_size + neg_list(index,3))/(reg_size+1);
% Save the x and y coordinates of the pixel (for the neighbour add proccess)
x = neg_list(index,1); y = neg_list(index,2);
% Remove the pixel from the neighbour (check) list
neg_list(index,:)=neg_list(neg_pos,:); neg_pos=neg_pos-1;
% Return the segmented area as logical matrix

Example Code for Unsharp Mask Filtering:

Read Image
I = imread(‘pout.tif’);
h_img = imshow(I);
To draw an ellipse
e = imellipse(gca,[55 10 120 120]);
Create mask
mask = createMask(e,h_img);
Create filter
h = fspecial(‘unsharp’);
Apply filter to region of interest
I2 = roifilt2(h,I,mask);
Display the result
Example Code for Histogram Equalization:
I = imread(‘pout.tif’);
J = histeq(I);
imshow( I );
imshow( J );