Lets Learn together... Happy Reading

" Two roads diverged in a wood, and I,
I took the one less traveled by,
And that has made all the difference "-Robert Frost

Read Image using skimage Module

Scikit-image contains image processing algorithms and is available free of cost. It can be accessed at
Let’s use skimage module for the read operation and display the image using matplotlib module.

Python Script:
from skimage import data
from skimage.color import colorconv
import matplotlib.pyplot as plt


img = data.imread('poppies.jpg');
plt.imshow(img);

plt.show();


#RGB to Grayscale Image
GrayC = colorconv.rgb2gray(img);
plt.imshow(GrayC,cmap='gray');
cbar = plt.colorbar();
plt.show();

#RGB to GrayScale Image without using the modules
GrayC1 = 0.30*img[:,:,0]+0.59*img[:,:,1]+0.11*img[:,:,2];
plt.imshow(GrayC1,cmap='gray');
cbar = plt.colorbar();
plt.show();


#Display Red, Green and Blue Channels separately

Red = 1*img;
Red[:,:,1:3]=0
#Red[:,:,1]=0;
#Red[:,:,2]=0;
plt.imshow(Red);
plt.show();


Green = 1*img;
Green[:,:,0]=0;
Green[:,:,2]=0;
plt.imshow(Green);
plt.show();


Blue = 1*img;
Blue[:,:,:-1]=0;
plt.imshow(Blue);
plt.show();

EXPLANATION:

GrayC = colorconv.rgb2gray(img);
The grayscale image values are between 0.0 and 1.0. The normalization of the image is done by dividing each pixel values by 255.  
GrayC1 = 0.30*img[:,:,0]+0.59*img[:,:,1]+0.11*img[:,:,2];
img[:,:,0] denotes the 2D array of rows and columns for the red channel
img[:,:,1] denotes the green channel of 2D array
img[:,:,2] denotes the blue channel of 2D array

Red = 1*img;
The variable ‘Red’ is assigned with the image ‘img’ which has RGB components.
Red[:,:,1:3]=0 indicates that all the rows and columns in the multidimensional array and the Green and blue Channels are assigned with zeros. ‘1:3’ indicates that 1st and the 2nd indices excluding the 3rd index.

Assigning Operation in Python
Python Script:
A = [ 1,2,3,4,5]
B = A
C = 1*A

print('Values in A before modification:',A);
print('Values in B before modification:',B);
print('Values in C before modification:',C);

#Assign Value 10 to the 4th position in the list(Remember the positioning starts from zero)
A[3] = 10

print('Values in A after modification:',A);
print('Values in B after modification:',B);
print('Values in C after modification:',C);

#Print address of the variables
print('Address of A:',hex(id(A)));
print('Address of B:',hex(id(B)));
print('Address of C:',hex(id(C)));


Output:

Values in A before modification: [1, 2, 3, 4, 5]
Values in B before modification: [1, 2, 3, 4, 5]
Values in C before modification: [1, 2, 3, 4, 5]
Values in A after modification: [1, 2, 3, 10, 5]
Values in B after modification: [1, 2, 3, 10, 5]
Values in C after modification: [1, 2, 3, 4, 5]
Address of A: 0xb454f08
Address of B: 0xb454f08
Address of C: 0xb454f88


EXPLANATION:

The memory address of A is assigned to B. So any changes undergone by B will be automatically reflected in A. In C, a small mathematical operation is performed that forces the variable to have different memory address which is unaffected. The addresses of the variables A and B are same while C has different address. 





like button Like "IMAGE PROCESSING" page

Read Image using Python Imaging Library

Python Imaging Library(PIL) is an open source package  for image processing that performs read, write and simple mathematical and logical manipulations on the image. In this post, let’s demonstrate the uses of PIL library in performing various operations on images. For plotting the image alone, matplotlib will be used.

Python script:
from PIL import Image,ImageChops
import matplotlib.pyplot as plt

img = Image.open("poppies.jpg");
plt.imshow(img);

plt.show();



#Grayscale Image
Gimg = img.convert('L');
plt.imshow(Gimg,cmap='gray');
plt.show();


#Display Red channel, Green channel and Blue Channel
r,g,b = img.split()
c1 = ImageChops.constant(r,0);

Red = Image.merge("RGB",(r,c1,c1));
plt.imshow(Red);
plt.show();






Green = Image.merge("RGB",(c1,g,c1));
plt.imshow(Green);
plt.show();


Blue = Image.merge("RGB",(c1,c1,b));
plt.imshow(Blue);
plt.show();



EXPLANATION:

img = Image.open("poppies.jpg");
The Image module from PIL is used to read the image ‘poppies.jpg’ into the variable ‘img’ as RGB image.
Gimg = img.convert('L');
The above syntax converts the RGB image into grayscale.
plt.imshow(Gimg,cmap='gray');
The command mentioned displays the monochromatic image with the colormap ‘gray’.
r,g,b = img.split();
This splits the RGB image ‘img’ and stores the Red component in ‘r’, green component in ‘g’and blue component in ‘b’
Let’s keep the Red channel undisturbed and replace other channels with zeros.
c1 = ImageChops.constant(r,0);
Create an image of same size of ‘img’ filled with zeros.
The above syntax will replace all the values in the image ‘r’ with the constant value ‘0’
Red = Image.merge("RGB",(r,c1,c1));
plt.imshow(Red);
plt.show();
Merge the three components to create RGB image. For red component, image ‘r’ is used and for green and blue component, the zero filled image ‘c1’ is used.
Similarly, the other channels are displayed as RGB components.
Yellow = Image.merge("RGB",(r,g,c1));
plt.imshow(Yellow);
plt.show();
Red and Green channels are used while the blue channel is filled with zeros.


The Variable explorer shows the list of variables used in the python script. The type of the variable is Image and it contains 640 rows by 353 columns.
The Mode ‘RGB’ indicates that the image is color image with Red, Green and Blue components. The Mode ‘L’ indicates that the image is grayscale or monochrome.


Let’s explore the pixel values of the image ‘img’. In the Variable explorer window, right click on the corresponding variable and click Edit.  The pixel values with respect to the position will be displayed in a table format.





NOTE:
Use the help() syntax to learn more about the modules.
EXAMPLE:  help(Image)
This displays all the available functions in the module ‘Image’ from the PIL library

like button Like "IMAGE PROCESSING" page

Image Processing with Python

 Python is a high level programming language which has easy to code syntax and offers packages for wide range of applications including numerical computing and graphics designing.
Anaconda is a python distribution which is freely downloadable. You can download and install the anaconda package in your node from the below mentioned link:




Anaconda includes most of the important packages such as matplotlib, Numpy, Jupyter, Scipy,pandas, scikits-image. You can check all available packages from the anaconda command prompt:
Type :   conda list

These packages will be of great help for plotting figures, mathematical and statistical processing, image processing and machine learning and so on and so forth.


Spyder is an interactive development environment for python. 



You can write your python scripts in the editor and click on the run icon. The result can be viewed on the ipython console.  The variable explorer contains the details /information about the variables initialized and available.


The size of the image is 100 x 200 i.e 100 columns and 200 rows. The image is RGB. i.e it contains Red, Green and Blue component. The positioning starts from 0.
At [0,0] the Red component has the value 254 , Green and Blue component are zero
At [99,0] the Red component is zero , Green component is 255 and the Blue component is zero
At [0,199], all the components are zero
At [99,199], Blue component is 255 , Red and Green components are zero 

Python Script:

import matplotlib.pyplot as plt

img = plt.imread('color.jpg')
plt.imshow(img);
plt.show();
print('Size of the Image:',img.shape);
print('At [0,0] the RGB components are:',img[0,0,:]);
print('At [99,0] the RGB components are:',img[99,0,:]);
print('At [0,199] the RGB components are:',img[0,199,:]);
print('At [99,199] the RGB components are:',img[99,199,:]);

Explanation:

Matplotlib functions are similar to the MATLAB syntax which will be quiet easy for people who are already familiar with MATLAB.
img.shape gives the size of the image. Ie. 100 x 200 x 3

img[0,0,:] indicates the (0,0) position in the image and ‘:’ fetches all the three components from that particular position.

NOTE:
Syntax to clear the console: clear
Syntax to clear the variables: reset





like button Like "IMAGE PROCESSING" page
Next Post Home
Google ping Hypersmash.com