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
Project 'Elphel/master' was moved to 'Elphel/image-compression'. Please update any links and bookmarks that may still have the old path.
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