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
b0e5d8f8
Commit
b0e5d8f8
authored
Jun 30, 2022
by
Bryce Hepner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
still in progess, added a ton of code for remote
parent
cfb96985
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
126 additions
and
11 deletions
+126
-11
Remove_Noise.py
Remove_Noise.py
+126
-11
No files found.
Remove_Noise.py
View file @
b0e5d8f8
from
matplotlib.image
import
composite_images
from
matplotlib.image
import
composite_images
from
WorkingPyDemo
import
*
from
WorkingPyDemo
import
*
import
paramiko
def
setup_remote_sftpclient
():
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
remove_noise
(
images
,
which_sensor
):
same_sensor_images
=
[]
same_sensor_images
=
[]
which_sensor
=
str
(
which_sensor
)
which_sensor
=
str
(
which_sensor
)
...
@@ -19,18 +25,127 @@ def remove_noise(images, which_sensor):
...
@@ -19,18 +25,127 @@ def remove_noise(images, which_sensor):
# print(np.array(image_object)[1:] + average_image)
# print(np.array(image_object)[1:] + average_image)
average_image
=
np
.
array
(
image_object
)[
1
:]
+
average_image
average_image
=
np
.
array
(
image_object
)[
1
:]
+
average_image
return
average_image
/
len
(
same_sensor_images
)
return
average_image
/
len
(
same_sensor_images
)
scenes
=
file_extractor
(
folder_name
)
images
=
image_extractor
(
scenes
)
def
remote_remove_noise
(
images
,
which_sensor
):
average_image
=
remove_noise
(
images
,
"7"
)
sftp_client
=
setup_remote_sftpclient
()
averages
=
[]
same_sensor_images
=
[]
which_sensor
=
str
(
which_sensor
)
first_image
=
sftp_client
.
open
(
images
[
0
])
average_image
=
np
.
array
(
Image
.
open
(
first_image
))[
1
:]
for
i
,
image_name
in
enumerate
(
images
):
if
int
(
which_sensor
)
>
9
:
if
image_name
[
-
7
:
-
5
]
==
which_sensor
:
same_sensor_images
.
append
(
image_name
)
else
:
if
image_name
[
-
7
:
-
5
]
==
"_"
+
which_sensor
:
same_sensor_images
.
append
(
image_name
)
images
=
[]
for
i
,
image_name
in
enumerate
(
same_sensor_images
):
# print(image_name)
image_object
=
sftp_client
.
open
(
image_name
)
image_object
=
Image
.
open
(
image_object
)
images
.
append
(
np
.
array
(
image_object
)[
1
:])
# print(np.array(image_object).shape)
# print(np.array(image_object)[1:] + average_image)
if
(
i
%
100
==
0
)
and
i
!=
0
:
image_object
=
np
.
mean
(
np
.
array
(
images
),
axis
=
0
)
# print(image_object.shape)
averages
.
append
(
image_object
)
# print(average_image.shape)
images
=
[]
image_object
=
np
.
mean
(
np
.
array
(
images
))
averages
.
append
(
image_object
)
sftp_client
.
close
()
return
np
.
mean
(
averages
,
axis
=
0
)
def
remote_file_extractor
(
headname
=
"/media/elphel/NVME/lwir16-proc/te0607/scenes/"
):
"""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
"""
client
=
paramiko
.
SSHClient
()
client
.
load_system_host_keys
()
client
.
connect
(
"192.168.0.107"
,
username
=
"elphel"
)
sftp_client
=
client
.
open_sftp
()
# sftp_client.listdir("media/elphel/NVME/lwir16-proc/te0607/scenes/")
dirs_in_scenes
=
sftp_client
.
listdir
(
"/media/elphel/NVME/lwir16-proc/te0607/scenes/"
)
scenes
=
[]
for
i
,
curr_folder
in
enumerate
(
dirs_in_scenes
):
if
"."
not
in
curr_folder
:
smaller_dirs
=
sftp_client
.
listdir
(
headname
+
curr_folder
)
for
small_folder
in
smaller_dirs
:
scenes
.
append
(
headname
+
curr_folder
+
"/"
+
small_folder
)
return
scenes
def
remote_image_extractor
(
scenes
):
sftp_client
=
setup_remote_sftpclient
()
image_folder
=
[]
for
scene
in
scenes
:
files
=
sftp_client
.
listdir
(
scene
)
for
file
in
files
:
if
file
[
-
5
:]
!=
".tiff"
or
file
[
-
7
:]
==
"_6.tiff"
:
continue
else
:
image_folder
.
append
(
os
.
path
.
join
(
scene
,
file
))
sftp_client
.
close
()
return
image_folder
#returns a list of file paths to .tiff files in the specified directory given in file_extractor
def
remove_the_noise
(
new_image
,
average_image
):
original_image_min
=
np
.
min
(
newimage
)
original_image_max
=
np
.
max
(
new_image
)
adjusted_image
=
new_image
-
average_image
adjusted_image
=
adjusted_image
-
np
.
min
(
adjusted_image
)
adjusted_image
=
adjusted_image
*
original_image_max
/
np
.
max
(
adjusted_image
)
adjusted_image
=
adjusted_image
+
original_image_min
return
adjusted_image
def
color_adjust
(
visual_array
):
def
color_adjust
(
visual_array
):
min_of_errors
=
np
.
min
(
visual_array
)
min_of_errors
=
np
.
min
(
visual_array
)
adjusted_array
=
visual_array
-
min_of_errors
adjusted_array
=
visual_array
-
min_of_errors
adjusted_array
=
np
.
round
(
adjusted_array
*
255
/
np
.
max
(
adjusted_array
))
adjusted_array
=
adjusted_array
/
np
.
max
(
adjusted_array
)
# print(adjusted_array)
# print(np.max(adjusted_array))
return
adjusted_array
return
adjusted_array
print
(
np
.
max
(
average_image
))
if
__name__
==
"__main__"
:
print
(
np
.
min
(
average_image
))
scenes
=
remote_file_extractor
(
"/media/elphel/NVME/lwir16-proc/te0607/scenes/"
)
plt
.
imshow
(
color_adjust
(
average_image
),
cmap
=
'gray'
,
vmin
=
0
,
vmax
=
255
)
# images = remote_image_extractor(np.random.choice(scenes,10000,replace = False))
plt
.
show
()
images
=
remote_image_extractor
(
scenes
)
# average_image = remote_remove_noise(images,"10")
average_image
=
np
.
array
(
Image
.
open
(
"hopefullyaverage.tiff"
))
# average_savable_image = Image.fromarray(average_image)
# average_savable_image.save("hopefullyaverage.tiff")
# print(np.max(average_image))
# print(np.min(average_image))
# average_image = color_adjust(average_image)
plt
.
imshow
(
color_adjust
(
average_image
),
cmap
=
'gray'
,
vmin
=
0
,
vmax
=
1
)
plt
.
show
()
# print(len(images))
sftp_client
=
setup_remote_sftpclient
()
print
(
len
(
images
))
for
i
,
item
in
enumerate
(
images
[
22000
:
22030
]):
if
item
[
-
7
:
-
5
]
==
"10"
:
print
(
i
)
print
(
item
)
print
(
images
[
22016
])
test_image
=
sftp_client
.
open
(
images
[
22016
])
test_image
=
Image
.
open
(
test_image
)
test_image
=
np
.
array
(
test_image
)[
1
:]
newimage
=
Image
.
fromarray
(
test_image
-
average_image
)
newimage
.
save
(
"NoInterference.tiff"
)
plt
.
subplot
(
121
)
plt
.
imshow
(
color_adjust
(
test_image
),
cmap
=
'gray'
,
vmin
=
0
,
vmax
=
1
)
plt
.
subplot
(
122
)
plt
.
imshow
(
color_adjust
(
test_image
-
average_image
),
cmap
=
'gray'
,
vmin
=
0
,
vmax
=
1
)
plt
.
show
()
# print(np.linalg.inv(np.array([[3,0,-1],[0,3,3],[1,-3,-4]])))
# print(np.linalg.inv(np.array([[3,0,-1],[0,3,3],[1,-3,-4]])))
print
(
np
.
linalg
.
pinv
(
np
.
array
([[
-
1
,
-
1
,
1
],
[
-
1
,
0
,
1
],
[
-
1
,
1
,
1
],
[
0
,
-
1
,
1
]])))
# print(np.linalg.pinv(np.array([[-1,-1,1], [-1,0,1], [-1,1,1], [0,-1,1]])))
\ No newline at end of file
\ 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