Friday 8 November 2013

Automatic Segmentation of the Pulmonary Lobes From Chest CT Scans Based on Fissures, Vessels, and Bronchi Matlab Code

Abstract


Segmentation of the pulmonary lobes is relevant in clinical practice and particularly challenging for cases with severe diseases or incomplete fissures. In thiswork, an automated segmentation approach is presented that performs a marker-based watershed transformation on computed tomography (CT) scans to subdivide the lungs into lobes. A cost image for the watershed transformation is computed by combining information from fissures, bronchi, and pulmonary vessels. The lobar markers are calculated by an analysis of the automatically labeled bronchial tree. By integration of information from several anatomical structures the segmentation is made robust against incomplete fissures. For evaluation the method was compared to a recently published method on 20 CT scans with no or mild disease. The average distances to the reference segmentation were 0.69, 0.67, and 1.21 mm for the left major, right major, and right minor fissure, respectively. In addition the results were submitted to LOLA11, an international lung lobe segmentation challenge with publically available data including cases with severe diseases. The average distances to the reference for the 55 CT scans provided by LOLA11 were 0.98, 3.97, and 3.09 mm for the left major, right major, and right minor fissure.
Moreover, an analysis of the relation between segmentation quality and fissure completeness showed that the method is robust against incomplete fissures.

Demo



Code Price : 2500 Rs /-
Matlab code is Available..
Contact : ieeematlabcode@gmail.com

Computerized Detection of Lung Nodules by Means of Virtual Dual-Energy Radiography Matlab Code

Abstract


Major challenges in current computer-aided detection (CADe) schemes for nodule detection in chest radiographs (CXRs) are to detect nodules that overlap with ribs and/or clavicles and to reduce the frequent false positives (FPs) caused by ribs. Detection of such nodules by a CADe scheme is very important, because radiologists are likely to miss such subtle nodules. Our purpose in this study was to develop a CADe scheme with improved sensitivity and specificity by use of “virtual dualenergy” (VDE) CXRs where ribs and clavicles are suppressed with massive-training artificial neural networks (MTANNs). To reduce rib-induced FPs and detect nodules overlapping with ribs, we incorporated the VDE technology in our CADe scheme. The VDE technology suppressed rib and clavicle opacities in CXRs while maintaining soft-tissue opacity by use of the MTANN technique that had been trained with real dual-energy imaging. Our scheme
detected nodule candidates on VDE images by use of a morphologic filtering technique. Sixty morphologic and gray-level-based features were extracted from each candidate from both original and VDE CXRs. A nonlinear support vector classifier was employed for classification of the nodule candidates. A publicly available database containing 140 nodules in 140 CXRs and 93 normal CXRs was used for testing our CADe scheme. All nodules were confirmed by computed tomography examinations, and the average size of the nodules was 17.8 mm. Thirty percent (42/140) of the nodules were rated “extremely subtle” or “very subtle” by a radiologist. The original scheme without VDE technology achieved a sensitivity of 78.6% (110/140) with 5 (1165/233) FPs per image. By use of the VDE technology, more nodules overlapping with ribs or clavicles were detected and the sensitivity was improved substantially to 85.0% (119/140) at the same FP rate in a leaveone- out cross-validation test, whereas the FP rate was reduced to 2.5 (583/233) per image at the same sensitivity level as the original CADe scheme obtained (Difference between the specificities of the original and the VDE-based CADe schemes was statistically significant). In particular, the sensitivity of our VDE-based CADe scheme for subtle nodules (66.7% = 28/42) was statistically significantly
higher than that of the original CADe scheme (57.1% = 24/42). Therefore, by use of VDE technology, the sensitivity and specificity of our CADe scheme for detection of nodules, especially subtle nodules, in CXRs were improved substantially.

Demo




Code Price : 3000 Rs /-
Matlab code is Available..
Contact : ieeematlabcode@gmail.com


Splat Feature Classification With Application to Retinal Hemorrhage Detection in Fundus Images Matlab Code

Abstract

A novel splat feature classification method is presented with application to retinal hemorrhage detection in fundus images. Reliable detection of retinal hemorrhages is important in the development of automated screening systems which can be translated into practice. Under our supervised approach, retinal color images are partitioned into nonoverlapping segments covering the entire image. Each segment, i.e., splat, contains pixels with similar color and spatial location. A set of features is extracted from each splat to describe its characteristics relative to its surroundings, employing responses from a variety of filter bank, interactions with neighboring splats, and shape and texture information. An optimal subset of splat features is selected by a filter approach followed by a wrapper approach. A classifier is trained with splat-based expert annotations and evaluated on the publicly available Messidor dataset. An area under the receiver operating characteristic curve of 0.96 is achieved at the splat level and 0.87 at the image level. While we are focused on retinal hemorrhage detection, our approach has potential to be applied to other object detection tasks.

Demo




Code Price : 2500 Rs /-
Matlab code is Available..
Contact : ieeematlabcode@gmail.com

Friday 16 August 2013

Install sv journal template on your Word

1. Download Sv-journ template from ftp://ftp.springer.de/pub/Word/journals

2. Extract the zip on your local directory.



3. Double click and open sv-journ.dot open in Word 2010.

4. Check out the Add-Ins tab.then all items are shown.



5. Then create your document and save it.

Wednesday 7 August 2013

Latent Semantic Indexing Matlab Code

In below we give the code of lsi on matlab.



function sim = lsi_calc(A,q,k)

[m,n] = size(A);

[U,S,V] = svds(A,k);

qc = q'*U*inv(S);

for i = 1:n % Loop over all documents

    sim(i) = (qc * V(i,:)') / (norm(qc) * norm(V(i,:)));

end;

MATLAB code for read image from webcam

In below code to read image from web cam then write the image on your local directory.


vid = videoinput('winvideo',1);

testpic = getsnapshot(vid);

imwrite(testpic,'image1.jpg');

imshow(testpic);

Friday 2 August 2013

Face Detection Matlab Code

Following code used to detect the face.

faceDetection.m



function detectfce = faceDetection(I)



faceDetector = vision.CascadeObjectDetector;  



% Read input image



% Detect faces

bbox = step(faceDetector, I);



% Create a shape inserter object to draw bounding boxes around detections

shapeInserter = vision.ShapeInserter('BorderColor','Custom','CustomBorderColor',[255 255 0]);



% Draw boxes around detected faces and display results             

snapshot0 = step(shapeInserter, I, int32(bbox));   



detectfce = I(bbox(2):bbox(2)+bbox(3),bbox(1):bbox(1)+bbox(4),:,:,:);



Main.m



[filename, pathname] = uigetfile({'*.jpg;*.tif;*.png;*.pgm','All Image Files';...

          '*.*','All Files' },'mytitle');

file = [pathname filename];





FileNames = file;

rgbImage = imread(FileNames);

detectfce = faceDetection(rgbImage );

figure;imshow(detectfce );





Neural Network with hidden Layers Example on Matlab | Matlab Neural Network with 2 hidden Layers

Neural network is one of the artificial intelligence technique,it solve problems in more areas ,like as patter recognition,clustering ,fitting and ect.

Neural network Steps as follow


1.Create the network

2.Train the network



1.Create the network


1st thing we design a network for our inputs for ex we have 2 input and 1 output.

ex:-
>>input = [2 2;4 5;6 7; 7 8; 9 10];
>>output = [1;1;2;2;2];

we create neural network with default hidden layer as follow.

>>net = newff(input,output);


if we want design with users hidden layers then we design as follow.

>>net = newff(input,output,[3 4]);

here [3 4] are two hidden layer. Each layer has each neurons.ex 1st hidden layer has 3 neurons and 2nd one 4 neurons.


2.Train Network


Its train our input data on neural network.

ex:

>>net = train(net,input,output);


Monday 29 July 2013

Change date format from dd-mm-yyyy to yyyy-mm-dd in java


import java.util.Collections;

import java.util.Vector;



/**

 *

 * @author RajBharath

 */

public class nCrCombination{



    /**

     * @param args the command line arguments

     */

    public static void main(String[] args) {

        // TODO code application logic here

       

        int count = 5;

        Vector prev = new Vector();

        Vector my_list = new Vector();

        for(int tot_item = 0;tot_item<=count;tot_item++)

        {

            prev.add(tot_item);

            my_list.add(tot_item);

        }

        Vector prev1 = new Vector();

        for(int tot_item = 0;tot_item<=count;tot_item++)

        {

                //System.out.println("Size = "+prev.size());

                for(int k = 0;k<prev.size();k++)

                {

                    String tmp = prev.get(k).toString();



                    String tmp_val[] = tmp.split(",");

                    int start = (int)Double.parseDouble(tmp_val[tmp_val.length-1]);

                    for(int item = start+1;item<=count;item++)

                    {

                        prev1.add(tmp+","+item);

                        my_list.add(tmp+","+item);

                        System.out.println(tmp+","+item);

                    }

                }   

               

                prev.clear();

                //System.out.println("Size = "+prev1.size());

                prev.addAll(0,prev1);

                //prev = prev1;

                prev1.clear();

        }

        System.out.println("Tot size = "+my_list.size());

           

    }

   

}




Get all Possible nCr Combinations in Java

In below code to give the results of 1 2 3 4 5. 11 12 13 14 15 nCr combination values.


import java.util.Collections;

import java.util.Vector;



/**

 *

 * @author RajBharath

 */

public class nCrCombination{



    /**

     * @param args the command line arguments

     */

    public static void main(String[] args) {

        // TODO code application logic here

       

        int count = 5;

        Vector prev = new Vector();

        Vector my_list = new Vector();

        for(int tot_item = 0;tot_item<=count;tot_item++)

        {

            prev.add(tot_item);

            my_list.add(tot_item);

        }

        Vector prev1 = new Vector();

        for(int tot_item = 0;tot_item<=count;tot_item++)

        {

                //System.out.println("Size = "+prev.size());

                for(int k = 0;k<prev.size();k++)

                {

                    String tmp = prev.get(k).toString();



                    String tmp_val[] = tmp.split(",");

                    int start = (int)Double.parseDouble(tmp_val[tmp_val.length-1]);

                    for(int item = start+1;item<=count;item++)

                    {

                        prev1.add(tmp+","+item);

                        my_list.add(tmp+","+item);

                        System.out.println(tmp+","+item);

                    }

                }   

               

                prev.clear();

                //System.out.println("Size = "+prev1.size());

                prev.addAll(0,prev1);

                //prev = prev1;

                prev1.clear();

        }

        System.out.println("Tot size = "+my_list.size());

           

    }

   

}



Calling Matlab function from Java

 Download matlabcontrol-4.1.0.jar library from https://code.google.com/p/matlabcontrol/

then try below code



import matlabcontrol.*;

import matlabcontrol.MatlabProxyFactory;

import matlabcontrol.MatlabProxyFactoryOptions;



/**

 *

 * @author RajBharath

 */

public class MatlabCommunication{



    /**

     * @param args the command line arguments

     */

    public static void main(String[] args)  throws Exception

    {

         // create proxy

        MatlabProxyFactoryOptions options = new MatlabProxyFactoryOptions.Builder()

             .setUsePreviouslyControlledSession(true)

             .build();

        MatlabProxyFactory factory = new MatlabProxyFactory(options);

        MatlabProxy proxy = factory.getProxy();



        proxy.eval("disp('hello world')");



        // call user-defined function (must be on the path)

       



        // close connection

        proxy.disconnect();



    }



}


Java Code for Resource Allocation

Here we give the sample for resource allocation to processor.Its process based on resource execution time.


import java.io.*;

import java.util.Random;

/**

 *

 * @author RajBharath

 */

public class ResourceAllocation

{

     int job[]=null,process[]=null;

     int pointer=0;

    ResourceAllocation()

    {

        String str="";

        int n,n1,i;

      

        Random randomGenerator = new Random();

      

        //--------------Resource Allocation

      

        BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));

        System.out.println("Enter the number of Resource : ");

        try

        {

            str = buffer.readLine();

        }

        catch(Exception e){}

        

        n = Integer.parseInt(str);

        job = new int[n];

        System.out.println("Each Resource Execution Time Randomly generated");

        System.out.println("-----------------------");

        for(i = 0;i<n;i++)

        {

            int randomInt = 1 + randomGenerator.nextInt(10);

            job[i] = randomInt;

            System.out.println(" Job - "+(i+1)+" : "+randomInt);

        }

      

        //--------------Processor Allocation

      

        System.out.println("Enter the number of processor : ");

        try

        {

        str = buffer.readLine();

        }

        catch(Exception e)

        {       

        }

        n1 = Integer.parseInt(str); 

        //--------------Tread Allocation

        

        for (i=0;i<n1;i++)

        {

            try

            {

                ThreadClass thread1 = new ThreadClass(job[pointer],n,n1,i);

                thread1.start();

                pointer++;

            }

           catch(Exception e)

            {

            }

        }

    }

  

    class ThreadClass extends Thread

    {

        String message;

        int n,n1,job1,i;

        //int pointer;

        ThreadClass(int job,int n,int n1,int i)

        {

                this.job1=job;

                //this.pointer=pointer;

                this.n=n-1;

                this.n1=n1-1;

                this.i=i;

        }

        public void run()

        {

            while(true)

            {

               try

                {

                     sleep(job1);

                     if (pointer>=n1)

                     {

                         System.out.println("processor="+ i +"--> job="+job1);

                         if (pointer>n)

                         {

                             break;

                         }

                         else

                         {

                         try

                         {

                             pointer++;

                             job1 = job[pointer];

                             this.start();

                            

                         }

                         catch(Exception e){}   

                         }

                    }

                }

                catch(Exception e)

                {

                    System.out.print("Thread Error");

                } 

             }

        }

    }

    public static void main(String arg[]) throws Exception

    {

       new ResourceAllocation();

    }



}




Sunday 28 July 2013

PHP get file contents utf8 example

<?php
 $url = "http://ta.wikipedia.org/wiki/%E0%AE%AE%E0%AF%81%E0%AE%A4%E0%AE%B1%E0%AF%8D_%E0%AE%AA%E0%AE%95%E0%AF%8D%E0%AE%95%E0%AE%AE%E0%AF%8D";
 $string = file_get_contents($url);
// echo $string;
 $string = mb_convert_encoding($string, 'HTML-ENTITIES', "UTF-8");
 $dom = new DOMDocument();
 $dom->preserveWhiteSpace = false;
 $dom->encoding = 'UTF-8';
 $dom->loadHTML($string);
 $mock = new DOMDocument();

 $body = $dom->getElementsByTagName('body')->item(0);
 foreach ($body->childNodes as $child){
  $mock->appendChild($mock->importNode($child, true));
 }
 $html_content = $mock->saveHTML();
 $html = preg_replace('#<script(.*?)>(.*?)</script>#is','', $html_content);
 $html = preg_replace('#<style(.*?)>(.*?)</style>#is','', $html);
 
 $cont = preg_replace("/<.*?>/","",$html);
 
 echo $cont ;
?>



Related Tags :  Php crawl hindi language html content , php crawl tamil html content , PHP crawl utf-8 content.

Thursday 25 July 2013

Matlab mex Gcc Configuration on Windows

Matlab mex Gcc Configuration on Windows

Following Steps to Configure Matlab gcc on windows platform.

1. Install Mingw from http://www.mingw.org/ if 64 bit os means , download 64 bit mingw.

2. Install a Cygwin environment http://www.cygwin.com/ if 64 bit os means , download 64 bit cygwin.

3. Download gnumex matlab packages from http://sourceforge.net/projects/gnumex/files/latest/download.

4. Then Extract the gunmex package on your cygwin root folder (ie c:\cygwin folder).

5. The open Matlab and set path to cygwin root folder(ie c:\cygwin).

6. Type gnumex on matlab command window.

7. Then one GUI windows comes.


8. Click Make options file.

9. Done


if shortpath74.mexw32 and uigetpath74.mexw32 problem means please recompile src package's on gumex.

>>mex shortpath.c
>>mex uigetpath.c


if any error means comment in below.

Matlab Wireless Network Simulation code

In below code to simulate a node on Wireless networks.


clc
clear all
close all
warning off

net_width = 10;
net_height = 80;
check = 1;
tot_nodes = 20;
traves_MS = 10;
hT = 4;


% Form Network area....
node_count = 1;
all_x = [];
all_y = [];
for j = 0:9:net_height
    if check==1
        start = 0;
        check = 0;
    else
        start = 5;
        check = 1;
    end
    for i = start:10.3:net_height
        circle([j,i],6,7,'-');
        hold on
        drawnow
        plot(j,i,j,i,'.','color','green');
        nodes(node_count).x = j;
        nodes(node_count).y = i;
        nodes(node_count).id = node_count;
        node_count = node_count+1;
        all_x = [all_x;i];
        all_y = [all_y;j];
    end
end
axis square;

min_x = min(all_x);
max_x = max(all_x);

min_y = min(all_y);
max_y = max(all_y);


% Making Random nodes....
for i = 1:tot_nodes
    x = round(min_x+(max_x-min_x)*rand);
    y = round(min_y+(max_y-min_y)*rand);
    pnt1 = [x y] ;
    best_node_inx = best_dist(pnt1,nodes);
    best_x = nodes(best_node_inx).x;
    best_y = nodes(best_node_inx).y;
    best_pnt = [best_x best_y];
    
    plot(x,y,x,y,'*','color','red');
    all_x = [pnt1(1) best_pnt(1)];
    all_y = [pnt1(2) best_pnt(2)];
    plot(all_x,all_y);
    hold on
    drawnow
end 


% Making Moving Nodes...
s_min_x = min_x+0.5;
s_min_y = min_y+0.5;
con_x = 1;
check = 1;
totms = 0;
traverse_node = [];

station_count = [];
station_data = [];
sel_nodes = [];
last_check_pnt = 1;
while(totms~=traves_MS)
    
    if s_min_x<=max_x&&check == 1
        check = 1;
    else
        check = 0;
        if s_min_x<=min_x && check == 0
            check = 1;
        end
    end
    if check ==1
        s_min_x = s_min_x+1;
        s_min_y = s_min_y+1;
    else
        s_min_x = s_min_x-1;
        s_min_y = s_min_y-1;
    end
    
    
    h1 = plot(s_min_x,s_min_y,s_min_x,s_min_y,'*','color','red');
    pnt1 = [s_min_x s_min_y] ;
    best_node_inx = best_dist(pnt1,nodes);
    best_x = nodes(best_node_inx).x;
    best_y = nodes(best_node_inx).y;
    best_pnt = [best_x best_y];
    hold on
    drawnow
    all_x = [pnt1(1) best_pnt(1)];
    all_y = [pnt1(2) best_pnt(2)];
    h2 = plot(all_x,all_y);
    pause(0.1);
    delete(h1);
    delete(h2);
end


Output


Read Landsat Image on Matlab

Here we give some example for read lan file on matlab.


clc
clear all
close all


file = 'lansetimgfile.lan';


IR1 = multibandread(file, [512, 512, 7], 'uint8=>uint8',...
                    128, 'bil', 'ieee-le', {'Band','Direct',[1]});

IR2 = multibandread(file, [512, 512, 7], 'uint8=>uint8',...
                    128, 'bil', 'ieee-le', {'Band','Direct',[2]});

IR3 = multibandread(file, [512, 512, 7], 'uint8=>uint8',...
                    128, 'bil', 'ieee-le', {'Band','Direct',[3]});

IR4 = multibandread(file, [512, 512, 7], 'uint8=>uint8',...
                    128, 'bil', 'ieee-le', {'Band','Direct',[4]});

IR5 = multibandread(file, [512, 512, 7], 'uint8=>uint8',...
                    128, 'bil', 'ieee-le', {'Band','Direct',[5]});

IR6 = multibandread(file, [512, 512, 7], 'uint8=>uint8',...
                    128, 'bil', 'ieee-le', {'Band','Direct',[6]});

IR7 = multibandread(file, [512, 512, 7], 'uint8=>uint8',...
                    128, 'bil', 'ieee-le', {'Band','Direct',[7]});

figure;imshow(IR);
title('1st Band Image');

figure;imshow(IR);
title('2rd Band Image');

figure;imshow(IR);
title('3rd Band Image');

figure;imshow(IR);
title('4th Band Image');

figure;imshow(IR);
title('5th Band Image');

figure;imshow(IR);
title('6th Band Image');

figure;imshow(IR);
title('7th Band Image');


Related Tags : Matlab code for read lan file, Read Landsat Image matlab code , read lan file in matlab example code.

Image Watermarking Matlab code

Here We Give the code of Image watermarking.


K=8;                                      
Q=50;                                     
W=im2bw(imread('s1.jpg'));                
Mm=size(W,1);                             
Nm=size(W,2);  
  
  
figure(1);  
subplot(321);  
imshow(W);  
title('the orginal watermark');  
  
I=imread('s12.jpg');  
subplot(322);  
imshow(I);  
title('the cover image');  
  
  
II=I;                   % to save the original image(I)  
  
blockrow=Mm;  
blockcol=Nm;  
  
for i=1:blockrow  
    for j=1:blockcol  
        x=(i-1)*K+1;  
        y=(j-1)*K+1;  
        BLOCK=II(x:x+K-1,y:y+K-1);  
        [U,S,V]=svd(double(BLOCK));  
  
        bit=W(i,j);                             %get the one bit wateramrk=bit  
        remainder=rem(S(1,1),Q);  
        if (bit==1)                             %embedding bit '1'  
            if (remainder<=Q/4)  
                S(1,1)=S(1,1)-remainder-Q/4;  
            else   
                S(1,1)=S(1,1)-remainder+3*Q/4;  
            end  
        else                                    %embedding bit '0'  
            if (remainder>=3*Q/4)  
                S(1,1)=S(1,1)-remainder+5*Q/4;  
            else  
                S(1,1)=S(1,1)-remainder+Q/4;  
            end  
        end  
  
        BLOCKW=U*S*V';                    
          
        II(x:x+K-1,y:y+K-1)=uint8(round(BLOCKW));  
          
    end  
end  
  
subplot(324);  
imshow(II);  
title('the watermarked image');  
  
% psnr1=PSNR(I,II)                            
  
A=double(II)-double(I);  
rsm=0;  
for i=1:size(A,1)  
    for j=1:size(A,2)  
        rsm=rsm+A(i,j)*A(i,j);  
    end  
end  
rsm=sqrt(rsm)/(size(A,1)*size(A,2))       
  
% to extracting the wateramrk from image(II)  
for i=1:blockrow  
    for j=1:blockcol  
        x=(i-1)*K+1;  
        y=(j-1)*K+1;  
        BLOCK=II(x:x+K-1,y:y+K-1);  
        [U,S,V]=svd(double(BLOCK));  
          
        remainder=rem(S(1,1),Q);  
        if (remainder>Q/2)  
            EW(i,j)=1;  
        else  
            EW(i,j)=0;  
        end  
    end  
end  
subplot(323);  
imshow(EW);  
title('the extracted wateramrk');  
  
% the watermarked image is attacked   
imwrite(uint8(II),'attack.jpg','jpeg','Quality',70);           %
II1=imread('attack.jpg');  
  

subplot(326);  
imshow(II1);  
title('the attacked image');  
  
for i=1:blockrow  
    for j=1:blockcol  
        x=(i-1)*K+1;  
        y=(j-1)*K+1;  
        BLOCK=II1(x:x+K-1,y:y+K-1);  
        [U,S,V]=svd(double(BLOCK));  
          
        remainder=rem(S(1,1),Q);  
        if (remainder>Q/2)  
            EW(i,j)=1;  
        else  
            EW(i,j)=0;  
        end  
    end  
end  
subplot(325);  
imshow(EW);  
title('the extracted wateramrk');  
  
corr2=NC(double(W),double(EW))              
psnr2=PSNR(I,II1)                           

Matlab Code for Client Server Communication

Server Configuration matlab code

data = 'Hai';
s = whos('data')
tcpipServer = tcpip('0.0.0.0',55000,'NetworkRole','Server');
set(tcpipServer,'OutputBufferSize',s.bytes);
fopen(tcpipServer);
fwrite(tcpipServer,data(:),'char');
fclose(tcpipServer);

Client Configuration matlab code

tcpipClient = tcpip('192.168.1.106',55000,'NetworkRole','Client')
set(tcpipClient,'InputBufferSize',7688);
fopen(tcpipClient);
rawData = fread(tcpipClient,961,'double');
fclose(tcpipClient);

Normalized Cross Correlation ,Normalized Mean Error , RMSE Calculation Matlab Code

Here We give the matlab code for Normalized Cross Correlation ,Normalized Mean Error and RMSE Calculations.

Normalized Cross Correlation matlab code


function NK = NormalizedCrossCorrelation(origImg, distImg)
if size(origImg,3)==1
    origImg = double(origImg);
    distImg = double(distImg);

    NK = sum(sum(origImg .* distImg)) / sum(sum(origImg^2));
else
    r_rm = NormalizedCrossCorrelation(origImg(:,:,1),distImg(:,:,1));
    g_rm = NormalizedCrossCorrelation(origImg(:,:,2),distImg(:,:,2));
    b_rm = NormalizedCrossCorrelation(origImg(:,:,3),distImg(:,:,3));
    NK = (r_rm+g_rm+b_rm)/3; 
end

 NormalizedMeanError matlab code


function NAE = NormalizedMeanError(origImg, distImg)
if size(origImg,3)==1
    origImg = double(origImg);
    distImg = double(distImg);

    error = origImg - distImg;

    NAE = sum(sum(abs(error))) / sum(sum(origImg));
else
    r_rm = NormalizedMeanError(origImg(:,:,1),distImg(:,:,1));
    g_rm = NormalizedMeanError(origImg(:,:,2),distImg(:,:,2));
    b_rm = NormalizedMeanError(origImg(:,:,3),distImg(:,:,3));
    NAE = (r_rm+g_rm+b_rm)/3; 

end


Root Mean Square Error (RMSE) Matlab code


function rmse_val = RMSE_calc(r,f)
if size(r,3)==1
    [m n] = size(r);
    rmse_val = sqrt(sum(double(r(:))-double(f(:))).^2)/(m*n);
else
    r_rm = RMSE_calc(r(:,:,1),f(:,:,1));
    g_rm = RMSE_calc(r(:,:,2),f(:,:,2));
    b_rm = RMSE_calc(r(:,:,3),f(:,:,3));
    rmse_val = (r_rm+g_rm+b_rm)/3;

end

Sunday 21 July 2013

PHP php_printer.dll Installation and Configuration


1. Download xampp Server from http://www.oldapps.com/xampp.php?old_xampp=44

2. Install it

3. Goto Xammp Home directory (ex C:\Xampp)

4. Then open php flder

5. Then open php.ini file.

6. Find ;extension=php_printer.dll

7. Then Remove ";"

8. Done

Without Xampp users

1. Download lates php_print.dll from http://us.php.net/get/pecl-5.2.6-Win32.zip/from/a/mirror

2. After download and extract, you get php_print.dll.

3. Copy this dll and goto your php\ext directory and paste it.

4. Then open php.ini file.

5. Find (extension_dir="C:\Program Files\PHP\ext") on that file.

6. The add this line (extension=php_printer.dll) line.

7. DOne


Example for php print to printer example.

<?php
$printer = "\\\\servername\\printername";
$handle = printer_open($printer);
        printer_set_option($handle, PRINTER_MODE, "raw");
printer_set_option($handle, PRINTER_PAPER_FORMAT, PRINTER_FORMAT_A5);
$output = "Print Contents";
printer_write($handle,$output);
    printer_close($handle);
?>

PHP Multithreading Example and php_pthreads Configurataion

If Php Support Multithreading means you must configure following things

1. Download Php with Thread Safe from http://windows.php.net/download/

2. After Php installation, download pthreads libraries from http://windows.php.net/downloads/pecl/releases/pthreads/

3. After download and extraction , copy php_pthreads.dll and pthreadVC2.dll this files.

4. Then goto your Php\ext directory and paste it.

5. Then  goto your PHP directory and find and rename "php.ini-development" file to "php.ini".

6. Open php.ini file in Notepad and find ;extension=php_shmop.dll line and add extension=php_pthreads.dll after that line.

7. Then Find ;extension_dir = "ext" line and remove ; from that line.

8. Finaly Save that php.ini file

9. Done

Then Run Below Multithreading Example.


PHP Multithreading Example

<?php
class MultiThread_EX extends Thread
{
    public function __construct($arg)
    {
        $this->arg = $arg;
    }

    public function run()
    {
        if($this->arg){
            printf("Hello %s\n", $this->arg);
        }
    }
}

$thread = new MultiThread_Ex("World");
if($thread->start())
$thread->join();



Matlab Simultaneous Plot

Here we give the sample code for Simultaneous Plot.


t = -pi:pi/300:pi;
axis([-1 1 -1 1 -1 2])
hold on
for i=1:2:length(t)-1
T=[t(i) t(i+1)];
plot3(sin(5*T),cos(3*T),T,'r')
plot3(sin(5*T),sin(3*T),T,'b')
pause(0.000001)
end
hold off

Output


Thursday 4 July 2013

YouTube Copyright School Question and Answers

This below some Q & A are faced by me.

If you are found to be a repeat infringer, you could lose your YouTube account.
You chose: True
Correct!
Users suspended for copyright infringement are forbidden from opening new accounts.
The following items are NOT protected by copyright:
You chose: People
Correct!
People are not protected by copyright. Sorry.
If someone alleges that you have infringed their copyright and you are certain that this is not the case, you may:
You chose: File a counter-notification
Correct!
If you believe your content was misidentified as infringing (as the result of a mistake or misidentification of the material claimed to be infringing), you may file a counter-notification.
If a video gets removed because of a copyright infringement notification, filing a counter-notification is the only possible way to restore the video.
You chose: True
Incorrect.
You may reach out to content owners and come to an agreement that they will retract their claim of copyright infringement. Should a claimant contact YouTube directly with a retraction, YouTube will be able to reinstate video content almost immediately.



If the original creator of the copyrighted work has died, the work is no longer protected by copyright.
You chose: False
Correct!
Copyright protection can continue even after the creator’s death.
Copyright infringement occurs when a copyrighted work is ________ without the permission of the copyright owner:
You chose: All of the above
Correct!
Copyright protects each of these individual rights.
Content that was once allowed by a content owner may be subsequently removed from YouTube.
You chose: True
Correct!
Owners can change their mind about how their content is displayed on YouTube. For this reason, creating completely original content is the best protection against copyright infringement claims.
If you claim fair use in the video description, your video can't be considered copyright infringement.
You chose: False
Correct!
Fair use cases can only be determined in court. You should seek legal advice from a qualified copyright attorney for help determining if your 

Monday 17 June 2013

Color Image Segmentation Matlab code

We have done color image Segmentation  using matlab tool. following steps are used to done color image segmentation.

1. Read image file
2. Apply Fuzzy C means clustering and group the data.
3.Find gradient magnitude for grouped data.
4.Finally apply watershed segmentation.

clc

clear all

close all

warning off





[filename, pathname] = uigetfile( {'*.jpg',  'Jpg Image File (*.JPG)'}, ...

   'Read a file'); 

file = [pathname filename]; 

IM = im2double(rgb2gray(imread(file)));



figure;imshow(IM,[]);



% load IM



[r c] = size(IM);



data = IM(:);

[center,U,obj_fcn] = fcm(data,4); % Fuzzy C-means classification with 4 classes

         

% Finding the pixels for each class

maxU = max(U);

index1 = find(U(1,:) == maxU);

index2 = find(U(2,:) == maxU);

index3 = find(U(3,:) == maxU);

index4 = find(U(4,:) == maxU);



% Assigning pixel to each class by giving them a specific value

fcmImage(1:length(data))=0;       

fcmImage(index1)= 1;

fcmImage(index2)= 0.66;

fcmImage(index3)= 0.33;

fcmImage(index4)= 0.0;





% Reshapeing the array to a image

imagNew = reshape(fcmImage,r,c);

figure;imshow(imagNew,[]);



gradmag = imagNew;

g = gradmag - min(gradmag(:));

g = g / max(g(:));



th = graythresh(g); %# Otsu's method.

a = imhmax(g,th/2); %# Conservatively remove local maxima.

th = graythresh(a);

b = a > th/4; %# Conservative global threshold.

c = imclose(b,ones(8)); %# Try to close contours.

d = imfill(c,'holes'); %# Not a bad segmentation by itself.

%# Use the rough segmentation to define markers.

g2 = imimposemin(g, ~ imdilate( bwperim(a), ones(4) ));

L = watershed(g2);

Lrgb = label2rgb(L);

figure;imshow(Lrgb,[]);


Wednesday 6 March 2013

Switching Bilateral Filter Noise Removal matlab code

Here we discuss about Switching Bilateral Filter Noise Removal step by step.

1.Read the image pixel by pixel (i,j).
2. Each pixel we construct 4 sub windows.

For a (2N+1) *(2N+1) window we divide the window into four (N+1)*(N+1) subwindows .


case N = 2

3.Find the Sorted Quadrant Median Vector (SQMV) for all subwindows.

SQM1, SQM2, SQM3 and SQM4 are the medians 

4. Then we find the regions from above all SQM.

Uniform Region
Diagonal edge in dark side
Diagonal edge in dark side
Veritical edge
Horizontal edge
Diagonal line
Gradual chage edge 
Texture

5. Then we find the reference median (SQMR)  based on above regions.
6. Then apply Bilateral Filter.
7. The apply noise detection .


Code:

clc
clear all
close all
close all hidden
warning off

con = 1; % con1 for 

img = imread('lena.jpg');

figure;imshow(img);
title('Input Image');


img = imnoise(img,'salt & pepper',0.01); % salt and pepper
Tk1 = 30; % for salt and paper noise..
Tk2 = 15; % for salt and paper noise..


% img = imnoise(img,'gaussian',0,0.01); % gaussian noise
% Tk1 = 25; % for Gaussian noise..
% Tk2 = 5; % for Gaussian noise..


img = double(img);
figure;imshow(uint8(img));
title('Noisy Image');

ext_filt = img;
sigma_R = 40;
[r c] = size(img);
N = 2;
pi_val = 25;
h = waitbar(0,'Applying Switching bilateral filter..');
L = 1;
for i = (N+1):r-(N+1)
    waitbar(L/length((N+1):r-(N+1)));
    L = L+1;
    for j = (N+1):c-(N+1)
        [m0,m1,m2,m3,m4] = meadian_calc(i,j,img,N);
        dav = dav_valc(m1,m2,m3,m4,img,i,j);
        SQMDB = m4-m1;
        SQMDC = m3-m2;
        SQMR = SQMR_calc(SQMDC,m1,m2,m3,m4,dav,pi_val);
        [s1 s2] = find_S1_S2(img,i,j,SQMR,Tk1,Tk2);
        if(dav~=0)
            sigma_S = 3;
        else
            sigma_S = 1;
        end
        f_x_y = f_of_x_y(i,j,N,img,sigma_S,sigma_R,s2,SQMR);
        ext_filt(i,j) = f_x_y;
    end
end
close(h); 

figure;
imshow(uint8(ext_filt));%output...

Referencce : Switching Bilateral Filter With a Texture/Noise Detector for Universal Noise Removal Chih-Hsing Lin, Jia-Shiuan Tsai, and Ching-Te Chiu Transactions on: Image Processing, IEEE Journals 2010
Related Posts Plugin for WordPress, Blogger...