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: 78
Rejestracja: ndz lut 11, 2018 12:26 pm

Skrypt do wizualizacji detekcji w 3D

Post autor: mpknap »

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 7603 razy
Uruchamiamy 3Dplot.py. I otrzymujemy 3D
3d.JPG
3d.JPG (54.23 KiB) Przejrzano 7603 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 7601 razy
3d.JPG
3d.JPG (53.17 KiB) Przejrzano 7601 razy
slawekstu
Site Admin
Posty: 96
Rejestracja: pt lis 10, 2017 11:24 pm

Re: Skrypt do wizualizacji detekcji w 3D

Post autor: slawekstu »

Dobra robota ;)
Jak znajdę więcej czasu chętnie przeanalizuję na spokojnie, może przyda się to do tworzenia filtru.
Kto wie ;)
mpknap
Posty: 78
Rejestracja: ndz lut 11, 2018 12:26 pm

Re: Skrypt do wizualizacji detekcji w 3D

Post autor: mpknap »

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: 217
Rejestracja: czw gru 13, 2018 9:15 pm

Re: Skrypt do wizualizacji detekcji w 3D

Post autor: Grzegorz »

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: 217
Rejestracja: czw gru 13, 2018 9:15 pm

Re: Skrypt do wizualizacji detekcji w 3D

Post autor: Grzegorz »

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 7512 razy
Bogdan51
Posty: 109
Rejestracja: wt lis 21, 2017 8:04 pm

Re: Skrypt do wizualizacji detekcji w 3D

Post autor: Bogdan51 »

Dziękuję za podanie linków
u mnie tak wyszło
Załączniki
przekonwenterowana detekcja.jpg
przekonwenterowana detekcja.jpg (241.15 KiB) Przejrzano 7503 razy
mpknap
Posty: 78
Rejestracja: ndz lut 11, 2018 12:26 pm

Re: Skrypt do wizualizacji detekcji w 3D

Post autor: mpknap »

: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: 109
Rejestracja: wt lis 21, 2017 8:04 pm

Re: Skrypt do wizualizacji detekcji w 3D

Post autor: Bogdan51 »

Jeszcze jeden przykład, ;)
Załączniki
test1.jpg
test1.jpg (159.65 KiB) Przejrzano 7478 razy
operacje na filtrach.jpg
operacje na filtrach.jpg (141.35 KiB) Przejrzano 7478 razy
Bogdan51
Posty: 109
Rejestracja: wt lis 21, 2017 8:04 pm

Re: Skrypt do wizualizacji detekcji w 3D

Post autor: Bogdan51 »

spectrum LUT
Załączniki
manipulacja na filtrach 1.jpg
manipulacja na filtrach 1.jpg (70.87 KiB) Przejrzano 7477 razy
Grzegorz
Posty: 217
Rejestracja: czw gru 13, 2018 9:15 pm

Re: Skrypt do wizualizacji detekcji w 3D

Post autor: Grzegorz »

Podaje kolejny link http://mkweb.bcgsc.ca/color-summarizer/, który może być świetnym uzupełnieniem ImageJ do statystycznej analizy detekcji.
Załączniki
czarna dziura....JPG
czarna dziura....JPG (16.27 KiB) Przejrzano 7465 razy
czarna dziura...JPG
czarna dziura...JPG (30.12 KiB) Przejrzano 7465 razy
czarna dziura..JPG
czarna dziura..JPG (64.72 KiB) Przejrzano 7465 razy
ODPOWIEDZ