Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
I
image-compression
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Elphel
image-compression
Commits
45e246f4
Commit
45e246f4
authored
Jun 09, 2022
by
Bryce Hepner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Works, used to test all the files
parent
ad92c63a
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
18 additions
and
40 deletions
+18
-40
WorkingPyDemo.py
WorkingPyDemo.py
+18
-40
No files found.
WorkingPyDemo.py
View file @
45e246f4
...
...
@@ -14,6 +14,14 @@ folder_name = "images"
outputlocation
=
""
def
file_extractor
(
dirname
=
"images"
):
"""Find all the files in the directory
Parameters:
dirname (str): the directory name
Returns:
files (list): a list of all the files in the directory
"""
files
=
os
.
listdir
(
dirname
)
scenes
=
[]
for
file
in
files
:
...
...
@@ -24,6 +32,13 @@ def file_extractor(dirname="images"):
return
scenes
def
image_extractor
(
scenes
):
"""
This function gives the list of all of the valid images
Parameters:
scenes (list): a list of all the files in the directory
Returns:
images (list): a list of all the images in the directory
"""
image_folder
=
[]
for
scene
in
scenes
:
files
=
os
.
listdir
(
scene
)
...
...
@@ -34,29 +49,6 @@ def image_extractor(scenes):
image_folder
.
append
(
os
.
path
.
join
(
scene
,
file
))
return
image_folder
#returns a list of file paths to .tiff files in the specified directory given in file_extractor
def
im_distribution
(
images
,
num
):
"""
Function that extracts tiff files from specific cameras and returns a list of all
the tiff files corresponding to that camera. i.e. all pictures labeled "_7.tiff" or otherwise
specified camera numbers.
Parameters:
images (list): list of all tiff files, regardless of classification. This is NOT a list of directories but
of specific tiff files that can be opened right away. This is the list that we iterate through and
divide.
num (str): a string designation for the camera number that we want to extract i.e. "14" for double digits
of "_1" for single digits.
Returns:
tiff (list): A list of tiff files that have the specified designation from num. They are the files extracted
from the 'images' list that correspond to the given num.
"""
tiff
=
[]
for
im
in
images
:
if
im
[
-
7
:
-
5
]
==
num
:
tiff
.
append
(
im
)
return
tiff
def
predict_pix
(
tiff_image_path
,
difference
=
True
):
"""
...
...
@@ -74,7 +66,7 @@ def predict_pix(tiff_image_path, difference = True):
Return:
image ndarray(512 X 640): original image
predict ndarray(325380,): predicted image excluding the boundary
diff. ndarray(325380,): IF difference = TRUE, difference between the min and max of four neighbors exclude the boundary
ELSE: the residuals of the four nearest pixels to a fitted hyperplane
error ndarray(325380,): difference between the original image and predicted image
...
...
@@ -140,6 +132,7 @@ class NodeTree(object):
return
self
.
left
,
self
.
right
def
__str__
(
self
):
"Technically does not return a string, cannot be used with print"
return
self
.
left
,
self
.
right
...
...
@@ -188,15 +181,8 @@ def make_dictionary(tiff_image_path_list, num_bins=4, difference = True):
num_bins (int): number of bins
Return:
huffman_encoding_list list (num_bins + 1): a list of dictionary
image_array ndarray (512, 640): original image
new_error ndarray (512, 640): error that includes the boundary
diff ndarray (510, 638): difference of min and max of the 4 neighbors
boundary ndarray (2300,): the boundary values after subtracting the very first pixel value
predict ndarray (325380,): the list of predicted values
huffman_encoding_list list (num_bins + 1): a list of dictionary, each dictionary is a huffman encoding
bins list (num_bins - 1,): a list of threshold to cut the bins
A ndarray (3 X 3): system of equation
"""
list_of_all_vals
=
[]
huffman_encoding_list
=
[]
...
...
@@ -289,10 +275,6 @@ def huffman(tiff_image_path, num_bins=4, difference = True):
# get the image_as_array, etc
image_as_array
,
diff
,
error
=
predict_pix
(
tiff_image_path
,
difference
)
# calculate the number of points that will go in each bin
# sort the difference and create the bins
bins
=
[
21
,
32
,
48
]
# get the boundary
boundary
=
np
.
hstack
((
image_as_array
[
0
,:],
image_as_array
[
-
1
,:],
image_as_array
[
1
:
-
1
,
0
],
image_as_array
[
1
:
-
1
,
-
1
]))
...
...
@@ -530,7 +512,3 @@ for i in range(len(images)):
# encoded_string2 = bytes_to_bitstring(read_from_file(item))
# reconstruct_image = decoder(encoded_string2, list_dic, bins, False)
# print(np.allclose(image, reconstruct_image))
print
(
np
.
mean
(
file_size_ratios
))
print
(
np
.
max
(
file_size_ratios
))
print
(
np
.
min
(
file_size_ratios
))
print
(
np
.
argmax
(
file_size_ratios
))
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment