Friday, 18 December 2015

How to enhance contrast of image using histogram equalization in MATLAB?


Ans=> To enhance contrast using histogram equalization we have to use the syntax “histeq”...An example is given below for reference...

a=imread('cameraman.tif');        %reading an image
b=histeq(a);                      %taking complement
figure,                           %opening figure window
subplot(1,2,1),subimage(a);title('original image');              %display gray image
subplot(1,2,2),subimage(b);title('hist equalized image');        %display histeq 
 image



 FOR MORE DETAILS
                  click here


SEGMENTATION OF PHEOCHROMOCYTOMAS IN CECT IMAGES USING MATLAB



          Segmentation of pheochromocytomas in Contrast-Enhanced Computed Tomography (CECT) images is an ill-posed problem due to the presence of weak boundaries, intratumoral degeneration, and nearby structures and clutter.
            Simultaneously co-segmenting common objects from a pair of images has drawn much attention. In such cases, the region-based LSMs (RLSMs) are more suitable by using statistical information of foreground and background regions. To improve the capability of segmenting objects having heterogeneous regions, local image information are widely considered in many localized RLSMs (LRLSMs).
Fig:REGION OF TUMOR

FOR DETAILS ABOUT LATEST IEEE PROJECTS





LICENSEPLATE NUMBER RECOGNITION USING MATLAB

                   The design of a new genetic algorithm (GA) is introduced to detect the locations of license plate (LP) symbols. An adaptive threshold method is applied to overcome the dynamic changes of illumination conditions when converting the image into binary. Connected component analysis technique (CCAT) is used to detect candidate objects inside the unknown image. A scale-invariant geometric relationship matrix is introduced to model the layout of symbols in any LP that simplifies system adaptability when applied in different countries. Moreover, two new crossover operators, based on sorting, are introduced, which greatly improve the convergence speed of the system.



                           Fig.Detected license plate number 

                            Most of the CCAT problems, such as touching or broken bodies, are minimized by modifying the GA to perform partial match until reaching an acceptable fitness value. The system is implemented using MATLAB and various image samples are experimented with to verify the distinction of the proposed system.


 FOR LATEST IEEE PROJECTS
                                                           click here

CONTENT BASED IMAGE RETRIEVAL FOR WEB APPLICATION USING IMAGE PROCESSING

CONTENT BASED IMAGE RETRIEVAL 

          "Content-based" means that the search analyzes the contents of the image rather than the metadata such as keywords, tags, or descriptions associated with the image. The term "content" in this context might refer to colors, shapes, textures, or any other information that can be derived from the image itself. CBIR is desirable because searches that rely purely on metadata are dependent on annotation quality and completeness. Having humans manually annotate images by entering keywords or metadata in a large database can be time consuming and may not capture the keywords desired to describe the image. The evaluation of the effectiveness of keyword image search is subjective and has not been well-defined. In the same regard, CBIR systems have similar challenges in defining success.

                                     Figure. An example of Image retrieval operation

Content-based image retrieval (CBIR), also known as query by image content (QBIC) and content-based visual information retrieval(CBVIR) is the application of computer vision techniques to the image retrieval problem, that is, the problem of searching for digital images in large databases. Content-based image retrieval is opposed to traditional concept-based approaches 


FOR MORE DETAILS

                     click here

SEGMENTATION-BASED IMAGE COPY-MOVE FORGERY DETECTION SCHEME

MATLAB CODE FOR  IMAGE COPY-MOVE FORGERY DETECTION 
 An image with copy-move forgery (CMF) contains at least a couple of regions whose contents are identical. CMF may be performed by a forger aiming either to cover the truth or to enhance the visual effect of the image. Normal people might neglect this malicious operation when the forger deliberately hides the tampering trace. So we are in urgent need of an effective CMF detection (CMFD) method to automatically point out the clone regions in the image. And CMFD is becoming one of the most important and popular digital forensic techniques currently.



       Figure. a)Original Image,              b)Copy-move Forgery Image         c) Detection of CMF region       

         Digital images are easy to manipulate and edit due to availability of powerful image processing and editing software. Nowadays, it is possible to add or remove important features from an image without leaving any obvious traces of tampering. As digital cameras and video cameras replace their analog counterparts, the need for authenticating digital images, validating their content and detecting forgeries will only increase.


FOR MORE DETAILS

                             click here

How to convert original image into complement image using MATLAB?

How to convert original  image into complement image using MATLAB?...

Ans=> To convert original image into complement image we have to use the syntax “imcomplement”...An example is given below for reference...

a=imread('cameraman.tif');         %reading an image
b=imcomplement(a);                  %taking complement
figure,                                         %opening figure window
subplot(1,2,1),subimage(a);title('original image');              %display colour image
subplot(1,2,2),subimage(b);title('complement image');      %display gray image



 FOR MORE DETAILS
                                      click here

Monday, 14 December 2015

SVM - Support vector machine with MATLAB


First of all, let me start by saying that I am a student and I am working as a student assistant at Technische Universität Chemnitz presently. The project which was handed over to me was on object recognition & development of a working model. During this project I encountered that very few students actually know how to do image processing and most of all there is no place to find a good tutorial for beginners who do not want to go by theoretical knowledge and would want to get their hands dirty with MATLAB programming. So, my blog is targeted for those students who wants to work in this field and unfortunately are not able to find any relevant information on machine learning algorithms and programming with MATLab anywhere on Internet.
                                                                              Fig:SVM classification algorithm

 Image can be processed in plenty of ways and one of them which I will present to you is on machine learning algorithms which I will be using on MATLAB. I will keep my language as basic as possible for beginners to understand, no offense to professionals as we all were in a learning phase in our life.

 My tutorial will follow a very basic structure as follows:
Obtaining the Image Datasets - ( I will be using Caltech101 dataset )
Separate Training set and Test set images.
Creating Lables for SVM train to distinct class.
Training SVM
Classify Test set images.
At the moment, I will assume that you are familiar with the term machine learning algorithms. I have absolutely zero intention to discuss theory over here.

 Just for beginners,
 Training set - This set of images will be used to train our SVM.
 Test set - In the end of the svm training we will use these images for classification.
 Label - I will use Faces and Airplanes, these are two objects so we will give them two "labels".
 Classify - Distinguish our test set images.

 Finally, I will present you a simple code for classification using SVM. I have used the Caltech101 dataset for this experiment. Train dataset will consist of 30 images divided in two class and two labels will be provided to them. Code is very basic to be understood. Hope it helps. The program goes as follows:

 Prepatory steps:
 Training set - Create a folder with 15 "Faces" images and 15 "airplanes" images, this will be our dataset.
 Test set - Create another folder with random face and airplanes images, this will be our testset, basically we have to understand here is that if you use training set images as test set images then you will get 100% recognition performance.
 --------------------------------------------------------------------------------------------------------
 clc
 clear all

 % Load Datasets

 Dataset = 'absolute path of the folder'; 
 Testset = 'absolute path of the folder';

 % we need to process the images first.
 % Convert your images into grayscale
 % Resize the images

 width=100; height=100;
 DataSet = cell([], 1);

 for i=1:length(dir(fullfile(Dataset,'*.jpg')))

 % Training set process
 k = dir(fullfile(Dataset,'*.jpg'));
 k = {k(~[k.isdir]).name};
 for j=1:length(k)
 tempImage = imread(horzcat(Dataset,filesep,k{j}));
 imgInfo = imfinfo(horzcat(Dataset,filesep,k{j}));

 % Image transformation
 if strcmp(imgInfo.ColorType,'grayscale')
 DataSet{j} = double(imresize(tempImage,[width height])); % array of images
 else
 DataSet{j} = double(imresize(rgb2gray(tempImage),[width height])); % array of images
 end
 end
 end
 TestSet = cell([], 1);
 for i=1:length(dir(fullfile(Testset,'*.jpg')))

 % Training set process
 k = dir(fullfile(Testset,'*.jpg'));
 k = {k(~[k.isdir]).name};
 for j=1:length(k)
 tempImage = imread(horzcat(Testset,filesep,k{j}));
 imgInfo = imfinfo(horzcat(Testset,filesep,k{j}));

 % Image transformation
 if strcmp(imgInfo.ColorType,'grayscale')
 TestSet{j} = double(imresize(tempImage,[width height])); % array of images
 else
 TestSet{j} = double(imresize(rgb2gray(tempImage),[width height])); % array of images
 end
 end
 end

 % Prepare class label for first run of svm
 % I have arranged labels 1 & 2 as per my convenience.
 % It is always better to label your images numerically
 % Please note that for every image in our Dataset we need to provide one label.
 % we have 30 images and we divided it into two label groups here.
 train_label = zeros(size(30,1),1);
 train_label(1:15,1) = 1; % 1 = Airplanes
 train_label(16:30,1) = 2; % 2 = Faces

 % Prepare numeric matrix for svmtrain
 Training_Set=[];
 for i=1:length(DataSet)
 Training_Set_tmp = reshape(DataSet{i},1, 100*100);
 Training_Set=[Training_Set;Training_Set_tmp];
 end

 Test_Set=[];
 for j=1:length(TestSet)
 Test_set_tmp = reshape(TestSet{j},1, 100*100);
 Test_Set=[Test_Set;Test_set_tmp];
 end

 % Perform first run of svm
 SVMStruct = svmtrain(Training_Set , train_label, 'kernel_function', 'linear');
 Group = svmclassify(SVMStruct, Test_Set);

------------------------------------------------------------------------------------------------------------

 Finally, you can check you Image recognition performance by seeing Group variable. you can also try to give the same dataset and testset location and you will achieve 100% recognition. This is because the same image is being classified which you are using to train you svm.
FOR MORE DETAILS CLICK HERE