Skrypt do wizualizacji detekcji w 3D

Przykładowe skrypty wykorzystujące dane z aplikacji.
Każdy skrypt powinien być opisany i wytłumaczony jak działa.
mpknap
Posty: 49
Rejestracja: ndz lut 11, 2018 12:26 pm

Skrypt do wizualizacji detekcji w 3D

Post autor: mpknap » ndz sty 27, 2019 7:32 pm

Skrypt służy do prezentacji detekcji w 3D
Kod zamieszczony jest pod linkiem : https://github.com/credo-science/-Simpl ... esentation

Skrypt 3Dplot.py (Python), przekształca dane zawarte w pliku detekcja.csv na trójwymiarowy obraz detekcji.

Do przygotowania pliku CSV należy użyć plik PROJECT1.EXE (napisany w LazarusPascal/Win).

Przed jego uruchomieniem musimy mieć pobrany ze strony https://api.credo.science/web/ plik graficzny detekcji w formacie PNG, BMP, etrc.
Przyjęto że grafika ma wymiary 50x50 pixeli.

Uruchamiamy Project1.exe wczytujemy plik graficzny i exportujemy do CSV.

Przykładowa detekcja 2D
28Sample.png
28Sample.png (446 Bajtów) Przejrzano 130 razy
Uruchamiamy 3Dplot.py. I otrzymujemy 3D
3d.JPG
3d.JPG (54.23 KiB) Przejrzano 130 razy

ŚRODOWISKO PROGRAMISTYCZNE
Lazarus Pascal/Python3/Windows
Standardowe biblioteki dla Python3 + Axes3D+ matplot + pandas + seaborn


DEDYKOWANY SYSTEM OPERACYJNY
Pisany pod Windows 10, nie testowany na innym systemie.

Inny przykład :
pobrane (1).png
pobrane (1).png (920 Bajtów) Przejrzano 128 razy
3d.JPG
3d.JPG (53.17 KiB) Przejrzano 128 razy

slawekstu
Site Admin
Posty: 24
Rejestracja: pt lis 10, 2017 11:24 pm

Re: Skrypt do wizualizacji detekcji w 3D

Post autor: slawekstu » pn sty 28, 2019 2:45 pm

Dobra robota ;)
Jak znajdę więcej czasu chętnie przeanalizuję na spokojnie, może przyda się to do tworzenia filtru.
Kto wie ;)

mpknap
Posty: 49
Rejestracja: ndz lut 11, 2018 12:26 pm

Re: Skrypt do wizualizacji detekcji w 3D

Post autor: mpknap » czw sty 31, 2019 6:51 am

Teraz całość w Pythonie. Wystarczy wprowadzić plik PNG.



from __future__ import with_statement
from PIL import Image
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns


#########################
# Convert PNG to CSV
#########################

im = Image.open('42Sample.png') #Load png file

#load the pixel info
pix = im.load()

#get a tuple of the x and y dimensions of the image
width, height = im.size
dd=''
n=''
#open a file to write the pixel data
with open('output_file.csv', 'w+') as f:
for a in range(1,width-1):
f.write('V'+str(a)+',')
f.write('V'+str(width)+'\n')

#read the details of each pixel and write them to the file
for y in range(height):
for x in range(width-2):

r = pix[x,y][0]
g = pix[x,y][1]
b = pix[x,y][2]
n=str((r+g+b) )
dd=dd+str(n)+','

dd=dd+str(n)
f.write(str(dd)+'\n')
dd=''

f.close()


##########################################
# S H O W 3 D
##########################################
url = 'output_file.csv'
data = pd.read_csv(url)

# Transform it to a long format
df=data.unstack().reset_index()
df.columns=["X","Y","Z"]

# And transform the old column name in something numeric
df['X']=pd.Categorical(df['X'])
df['X']=df['X'].cat.codes

# Make the plot
fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot_trisurf(df['Y'], df['X'], df['Z'], cmap=plt.cm.viridis, linewidth=0.2)
plt.show()

# to Add a color bar which maps values to colors.
surf=ax.plot_trisurf(df['Y'], df['X'], df['Z'], cmap=plt.cm.viridis, linewidth=0.2)
fig.colorbar( surf, shrink=0.5, aspect=5)
plt.show()

# Rotate it
ax.view_init(30, 45)
plt.show()

# Other palette
ax.plot_trisurf(df['Y'], df['X'], df['Z'], cmap=plt.cm.jet, linewidth=0.01)
plt.show()

Grzegorz
Posty: 20
Rejestracja: czw gru 13, 2018 9:15 pm

Re: Skrypt do wizualizacji detekcji w 3D

Post autor: Grzegorz » ndz lut 03, 2019 2:46 pm

mpknap pisze:
czw sty 31, 2019 6:51 am
Teraz całość w Pythonie. Wystarczy wprowadzić plik PNG.
Witam,
Czy da się ten skrypt uruchomić np. w
QPython3 na androida? Jeśli tak, to prosiłbym o jakieś wskazówki jak to zrobić.
Z góry dzięki za pomoc.

Grzegorz
Posty: 20
Rejestracja: czw gru 13, 2018 9:15 pm

Re: Skrypt do wizualizacji detekcji w 3D

Post autor: Grzegorz » czw lut 21, 2019 6:00 pm

Witam ponownie,
Nie mam pojęcia o skryptach Phytona ale znalazłem wczoraj mały programik 3D Color Inspector pod adresem https://imagej.nih.gov/ij/plugins/color-inspector.html. Może się przyda w analizie detekcji.
Pozdrawiam
Załączniki
Przechwytywanie.JPG
Przechwytywanie.JPG (66.08 KiB) Przejrzano 39 razy

Bogdan51
Posty: 50
Rejestracja: wt lis 21, 2017 8:04 pm

Re: Skrypt do wizualizacji detekcji w 3D

Post autor: Bogdan51 » czw lut 21, 2019 10:37 pm

Dziękuję za podanie linków
u mnie tak wyszło
Załączniki
przekonwenterowana detekcja.jpg
przekonwenterowana detekcja.jpg (241.15 KiB) Przejrzano 30 razy

mpknap
Posty: 49
Rejestracja: ndz lut 11, 2018 12:26 pm

Re: Skrypt do wizualizacji detekcji w 3D

Post autor: mpknap » pt lut 22, 2019 6:48 am

:o OOO!!! Bardzo ciekawe. Szukałem czegoś takiego. Ogólnie odkąd odnalazłem projekt CREDO i zacząłem pisać program dla Windows, gdzieś tam męczyła mnie taka wizualizacja. Wiedziałem że łatwo detekcję można przerobić na 3D, i to miałbyć punkt nr 2 do zrobienia :). Fajna by była taka opcja w telefonie. Klikamy w obraz detekcji i oglądamy ją w trzech wymiarach ;)

Bogdan51
Posty: 50
Rejestracja: wt lis 21, 2017 8:04 pm

Re: Skrypt do wizualizacji detekcji w 3D

Post autor: Bogdan51 » sob lut 23, 2019 9:35 pm

Jeszcze jeden przykład, ;)
Załączniki
test1.jpg
test1.jpg (159.65 KiB) Przejrzano 5 razy
operacje na filtrach.jpg
operacje na filtrach.jpg (141.35 KiB) Przejrzano 5 razy

Bogdan51
Posty: 50
Rejestracja: wt lis 21, 2017 8:04 pm

Re: Skrypt do wizualizacji detekcji w 3D

Post autor: Bogdan51 » sob lut 23, 2019 10:00 pm

spectrum LUT
Załączniki
manipulacja na filtrach 1.jpg
manipulacja na filtrach 1.jpg (70.87 KiB) Przejrzano 4 razy

ODPOWIEDZ