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
767ccc59
Commit
767ccc59
authored
Jul 13, 2022
by
Bryce Hepner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
more docstrings
parent
410cc91f
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
69 additions
and
5 deletions
+69
-5
Remove_Noise.py
Remove_Noise.py
+69
-5
No files found.
Remove_Noise.py
View file @
767ccc59
...
...
@@ -7,13 +7,26 @@ from scipy.stats import multivariate_normal
from
skimage.restoration
import
wiener
def
setup_remote_sftpclient
():
"""
Setup the SFTP client
Returns:
sftp_client (paramiko.SFTPClient): the SFTP client
"""
client
=
paramiko
.
SSHClient
()
client
.
load_system_host_keys
()
client
.
connect
(
"192.168.0.107"
,
username
=
"elphel"
)
sftp_client
=
client
.
open_sftp
()
return
sftp_client
def
remove_noise
(
images
,
which_sensor
):
def
create_average
(
images
,
which_sensor
):
"""
Create an average image from a list of images
Parameters:
images (list): a list of images
which_sensor (int): the sensor number
Returns:
average_image (np.array): the average image
"""
same_sensor_images
=
[]
which_sensor
=
str
(
which_sensor
)
average_image
=
np
.
zeros_like
(
np
.
array
(
Image
.
open
(
images
[
0
]))[
1
:])
...
...
@@ -31,6 +44,14 @@ def remove_noise(images, which_sensor):
return
average_image
/
len
(
same_sensor_images
)
def
remote_create_average
(
images
,
which_sensor
):
"""
Create an average image from a list of images
Parameters:
images (list): a list of images
which_sensor (int): the sensor number
Returns:
average_image (np.array): the average image
"""
sftp_client
=
setup_remote_sftpclient
()
averages
=
[]
...
...
@@ -81,6 +102,12 @@ def remote_file_extractor(headname = "/media/elphel/NVME/lwir16-proc/te0607/scen
return
scenes
def
remote_image_extractor
(
scenes
):
"""Find all the files in the directory
Parameters:
dirname (str): the directory name
Returns:
image_folder (list): a list of all the file paths in the directory
"""
sftp_client
=
setup_remote_sftpclient
()
image_folder
=
[]
for
scene
in
scenes
:
...
...
@@ -93,6 +120,14 @@ def remote_image_extractor(scenes):
sftp_client
.
close
()
return
image_folder
#returns a list of file paths to .tiff files in the specified directory given in file_extractor
def
find_only_in_channel
(
images
,
channel_name
=
"10"
):
"""
Find the images that are only in the specified channel
Parameters:
images (list): a list of images
channel_name (str): the channel name
Returns:
same_sensor_images (list): a list of images that are only in the specified channel
"""
same_sensor_images
=
[]
for
i
,
image_name
in
enumerate
(
images
):
if
int
(
channel_name
)
>
9
:
...
...
@@ -103,6 +138,14 @@ def find_only_in_channel(images, channel_name = "10"):
same_sensor_images
.
append
(
image_name
)
return
same_sensor_images
def
adjust_to_original
(
new_image
,
average_image
):
"""
Adjust the image to the original image
Parameters:
new_image (np.array): the new image
average_image (np.array): the average image
Returns:
adjusted_image (np.array): the adjusted image
"""
original_image_min
=
np
.
min
(
new_image
)
original_image_max
=
np
.
max
(
new_image
)
average_image
=
average_image
-
np
.
mean
(
average_image
)
...
...
@@ -126,12 +169,26 @@ def adjust_to_original(new_image, average_image):
return
adjusted_image
.
astype
(
np
.
uint16
)
def
color_adjust
(
visual_array
):
"""
Adjust the image to the original image
Parameters:
visual_array (np.array): the visual array
Returns:
adjusted_array (np.array): the adjusted image
"""
min_of_errors
=
np
.
min
(
visual_array
)
adjusted_array
=
visual_array
-
min_of_errors
adjusted_array
=
adjusted_array
/
np
.
max
(
adjusted_array
)
return
adjusted_array
def
save_new_average
(
quantity_of_images
=
1500
,
channel
=
"10"
,
head_dir
=
"/media/elphel/NVME/lwir16-proc/te0607/scenes/"
):
"""
Save the new average image
Parameters:
quantity_of_images (int): the number of images to use in the average
channel (str): the channel name
head_dir (str): the head directory
"""
scenes
=
remote_file_extractor
(
head_dir
)
images
=
find_only_in_channel
(
remote_image_extractor
(
scenes
),
channel
)
if
quantity_of_images
!=
"all"
:
...
...
@@ -142,7 +199,14 @@ def save_new_average(quantity_of_images = 1500, channel = "10", head_dir = "/med
average_savable_image
=
Image
.
fromarray
(
average_image
)
average_savable_image
.
save
(
"Average_On_Channel("
+
channel
+
").tiff"
)
def
create_testable_images
(
images
,
selected_channel
,
quantity_of_images
):
def
save_testable_images
(
images
,
selected_channel
,
quantity_of_images
):
"""
Saves the testable images
Parameters:
images (list): a list of images
selected_channel (str): the channel name
quantity_of_images (int): the number of images to use in the average
"""
sftp_client
=
setup_remote_sftpclient
()
images
=
find_only_in_channel
(
images
,
selected_channel
)
...
...
@@ -174,8 +238,8 @@ def create_testable_images(images, selected_channel, quantity_of_images):
sftp_client
.
close
()
def
save_new_gauss
():
"""
\
creates gaussian kernel with side length `l` and a sigma of `sig`
"""
Save the new gauss image
"""
# x,y = np.mgrid[-1:1:.003125, -1:1:.003125]
...
...
@@ -206,7 +270,7 @@ if __name__ == "__main__":
images
=
remote_image_extractor
(
scenes
)
images
=
find_only_in_channel
(
images
,
"11"
)
# average_image = np.array(Image.open("Average_On_Channel(" + "11" + ").tiff"))
#
creat
e_testable_images(images,"11",3)
#
sav
e_testable_images(images,"11",3)
# plt.imshow(color_adjust(average_image),cmap='gray',vmin = 0, vmax=1)
# plt.show()
...
...
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