#python code to correct skew angle in images #need to use concept of Eigen Vectors here import cv2 import binarization import numpy as np kernel = np.ones((5,5),np.uint8) img = cv2.imread('/home/suryo/Image_Processing_Exercises/IISC/resources/Kandanu10.jpg',0) cv2.imshow('original', img) binary = binarization.binary_img(img) cv2.imshow('binary', binary) dil = cv2.dilate(binary,kernel,iterations = 1) cv2.imshow('dil', dil) height, width = img.shape[:2] all_white_pixels = [] print height print width for i in range(0,height): for j in range(0,width): if(binary.item(i,j)==255): all_white_pixels.append([i,j]) #print all_white_pixels
Created on Fri Apr 24 21:35:50 2015 @author: suryo """ import cv2 import binarization import numpy as np import time kernel = np.ones((5,5),np.uint8) img = cv2.imread('/home/suryo/Image_Processing_Exercises/IISC/resources/1.jpg',0) cv2.imshow('original', img) all_angles = [] binary = binarization.binary_img(img) #cv2.imshow('binary', binary) contours, hierarchy = cv2.findContours(binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) #contours, hierarchy = cv2.findContours(binary.copy(),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)[0] #print contours #for c in contours: print type(contours) k = 0 areas = [] cnt = contours[0] upper_bound=len(contours) print upper_bound
@author: suryo """ import cv2 import binarization import numpy as np import time kernel = np.ones((5, 5), np.uint8) img = cv2.imread('/home/suryo/Image_Processing_Exercises/IISC/resources/1.jpg', 0) cv2.imshow('original', img) all_angles = [] binary = binarization.binary_img(img) #cv2.imshow('binary', binary) contours, hierarchy = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) #contours, hierarchy = cv2.findContours(binary.copy(),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)[0] #print contours #for c in contours: print type(contours) k = 0 areas = [] cnt = contours[0] upper_bound = len(contours) print upper_bound
# -*- coding: utf-8 -*- """ Created on Sat Mar 21 22:07:06 2015 @author: suryo """ import cv2 import binarization img = cv2.imread('/home/suryo/Image_Processing_Exercises/resources/1.jpg', 0) binary = binarization.binary_img(img) cv2.imshow('binary', binary) cv2.waitKey(0) cv2.destroyAllWindows()
img=cv2.medianBlur(img,5) largest_contour = np.zeros(img.shape[:2],np.uint8) sobely = cv2.Sobel(img,cv2.CV_64F,0,1,ksize=5) abs_sobel64f = np.absolute(sobely) sobel_8u = np.uint8(abs_sobel64f) #sobely = cv2.erode(sobely,kernel,iterations = 1) cv2.imshow('sobely',sobel_8u) new_sobel=cv2.medianBlur(sobel_8u,5) cv2.imshow('sobel new',new_sobel) new_sobel = 255 - new_sobel yay = binarization.binary_img(new_sobel) cv2.imshow('yay',yay) contours, hierarchy = cv2.findContours(yay,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) areas = [cv2.contourArea(c) for c in contours] max_index = np.argmax(areas) cnt=contours[max_index] print max_index cv2.drawContours(largest_contour, contours, max_index, (255,255,255), 2) cv2.imshow('largest', largest_contour) #cv2.imwrite('largest.jpg', mask)