Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to address a folder???
#1
Heart 
i am complately neawby form python,please help

My file is stored in "C:\Users\metbe\OneDrive\Desktop\RPA\download\DM2.jpg"

i need work with this file,

how can i address this file the code herebelow, Angel
#-------------------------------------------------------------------------------
# Name:        module1
# Purpose:
#
# Author:      rakesh.sv
#
# Created:     12-09-2019
# Copyright:   (c) rakesh.sv 2019
# Licence:     <your licence>
#-------------------------------------------------------------------------------
import numpy as np
from skimage import io
from skimage.feature import canny
from skimage.color import rgb2gray
from skimage.transform import hough_line, hough_line_peaks
from skimage.transform import rotate
import skimage
import os
import json
import base64
from base64 import b64encode
from json import dumps
from io import BytesIO
from PIL import Image

class Main():
    def __init__(self):
        self.piby4 = np.pi / 4

    def check_path(self, path):
        if os.path.isabs(path):
            full_path = path
        else:
            full_path = os.getcwd() + '/' + str(path)
        return full_path

    def calculate_deviation(self,angle):
        angle_in_degrees = np.abs(angle)
        deviation = np.abs(self.piby4 - angle_in_degrees)
        return deviation

    def get_max_freq_elem(self,arr):
        max_arr = []
        freqs = {}
        for i in arr:
            if i in freqs:
                freqs[i] += 1
            else:
                freqs[i] = 1
        sorted_keys = sorted(freqs, key=freqs.get, reverse=True)
        max_freq = freqs[sorted_keys[0]]
        for k in sorted_keys:
            if freqs[k] == max_freq:
                max_arr.append(k)
        return max_arr

    def compare_sum(self,value):
        if value >= 44 and value <= 46:
            return True
        else:
            return False

    def predict(self,input_path):
        try:
            img = skimage.io.imread(input_path,as_gray=True, plugin='imageio')
            edges = canny(img, sigma=3.0)
            ##hspace , angle , distance
            h, a, d = hough_line(edges)
            ## accum, angles, dists
            _, ap, _ = hough_line_peaks(h, a, d, num_peaks=20)
            if len(ap) == 0:
                pil_img = Image.fromarray(img)
                buff = BytesIO()
                pil_img.save(buff, format="PNG")
                new_image_string = base64.b64encode(buff.getvalue()).decode("utf-8")
                return json.dumps({"Angle":0.0,"Base64":new_image_string})
            absolute_deviations = [self.calculate_deviation(k) for k in ap]
            average_deviation = np.mean(np.rad2deg(absolute_deviations))
            ap_deg = [np.rad2deg(x) for x in ap]
            bin_0_45 = []
            bin_45_90 = []
            bin_0_45n = []
            bin_45_90n = []
            for ang in ap_deg:
                deviation_sum = int(90 - ang + average_deviation)
                if self.compare_sum(deviation_sum):
                    bin_45_90.append(ang)
                    continue

                deviation_sum = int(ang + average_deviation)
                if self.compare_sum(deviation_sum):
                    bin_0_45.append(ang)
                    continue

                deviation_sum = int(-ang + average_deviation)
                if self.compare_sum(deviation_sum):
                    bin_0_45n.append(ang)
                    continue

                deviation_sum = int(90 + ang + average_deviation)
                if self.compare_sum(deviation_sum):
                    bin_45_90n.append(ang)

            angles = [bin_0_45, bin_45_90, bin_0_45n, bin_45_90n]
            lmax = 0
            for j in range(len(angles)):
                l = len(angles[j])
                if l > lmax:
                    lmax = l
                    maxi = j

            if lmax:
                ans_arr = self.get_max_freq_elem(angles[maxi])
                ans_res = np.mean(ans_arr)
            else:
                ans_arr = self.get_max_freq_elem(ap_deg)
                ans_res = np.mean(ans_arr)

            data = {
                "Image File": "",
                "Average Deviation from pi/4": average_deviation,
                "Estimated Angle": ans_res,
                "Angle bins": angles}
            angle = data['Estimated Angle']
            if angle!="":
                if angle >= 0 and angle <= 90:
                    rot_angle = angle - 90
                if angle >= -45 and angle < 0:
                    rot_angle = angle - 90
                if angle >= -90 and angle < -45:
                    rot_angle = 90 + angle
                rotated = rotate(img, rot_angle, resize=True,mode='edge')
                higher_dtype = (rotated*255)
                h_dtype = higher_dtype.astype(np.uint8)
                pil_img = Image.fromarray(h_dtype)
                buff = BytesIO()
                pil_img.save(buff, format="PNG")
                new_image_string = base64.b64encode(buff.getvalue()).decode("utf-8")
##                file_name=os.path.basename(os.path.normpath(input_path))
##                directory_path = os.path.dirname(path)
##                output_path = directory_path+"\\"+"Corrected_"+file_name
##                io.imsave(output_path, higher_dtype.astype(np.uint8))
                return json.dumps({"Angle":rot_angle,"Base64":new_image_string})
            else:
                return json.dumps({"Angle":"Image quality not supported","Base64":""})
        except Exception as e:
##          return json.dumps(str(e), indent=2)
            return json.dumps({"Angle":"Image quality not supported","Base64":""})

##if __name__ == '__main__':
##    path = "C:\\Users\\rakesh.sv\\Desktop\\Skew_images\\Corrected_skew_sample.png"
##    output_path"C:\\Users\\rakesh.sv\\Desktop\\Skew_images\\skew_sample5_corrected.jpg"
##    obj = Main()
##    x =obj.predict(path)
##    print(x)
Reply
#2
where is the file in relation to the python script?
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Compare folder A and subfolder B and display files that are in folder A but not in su Melcu54 3 562 Jan-05-2024, 05:16 PM
Last Post: Pedroski55
  Compare filename with folder name and copy matching files into a particular folder shantanu97 2 4,509 Dec-18-2021, 09:32 PM
Last Post: Larz60+
  Move file from one folder to another folder with timestamp added end of file shantanu97 0 2,483 Mar-22-2021, 10:59 AM
Last Post: shantanu97
  Extracing unique email address from a folder of emails jehoshua 6 2,763 Oct-14-2020, 12:43 AM
Last Post: jehoshua
  Python Cut/Copy paste file from folder to another folder rdDrp 4 5,071 Aug-19-2020, 12:40 PM
Last Post: rdDrp
  Delete directories in folder is not working after folder is updated asheru93 2 2,664 Feb-13-2019, 12:37 PM
Last Post: asheru93
  copy content of folder to existing folder shlomi27 0 2,643 Aug-11-2018, 01:44 PM
Last Post: shlomi27

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020