Strona 1 z 2

Skrypt do wizualizacji detekcji w 3D

: ndz sty 27, 2019 7:32 pm
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 1242 razy
Uruchamiamy 3Dplot.py. I otrzymujemy 3D
3d.JPG
3d.JPG (54.23 KiB) Przejrzano 1242 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 1240 razy
3d.JPG
3d.JPG (53.17 KiB) Przejrzano 1240 razy

Re: Skrypt do wizualizacji detekcji w 3D

: pn sty 28, 2019 2:45 pm
autor: slawekstu
Dobra robota ;)
Jak znajdę więcej czasu chętnie przeanalizuję na spokojnie, może przyda się to do tworzenia filtru.
Kto wie ;)

Re: Skrypt do wizualizacji detekcji w 3D

: czw sty 31, 2019 6:51 am
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()

Re: Skrypt do wizualizacji detekcji w 3D

: ndz lut 03, 2019 2:46 pm
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.

Re: Skrypt do wizualizacji detekcji w 3D

: czw lut 21, 2019 6:00 pm
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

Re: Skrypt do wizualizacji detekcji w 3D

: czw lut 21, 2019 10:37 pm
autor: Bogdan51
Dziękuję za podanie linków
u mnie tak wyszło

Re: Skrypt do wizualizacji detekcji w 3D

: pt lut 22, 2019 6:48 am
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 ;)

Re: Skrypt do wizualizacji detekcji w 3D

: sob lut 23, 2019 9:35 pm
autor: Bogdan51
Jeszcze jeden przykład, ;)

Re: Skrypt do wizualizacji detekcji w 3D

: sob lut 23, 2019 10:00 pm
autor: Bogdan51
spectrum LUT

Re: Skrypt do wizualizacji detekcji w 3D

: ndz lut 24, 2019 9:00 pm
autor: Grzegorz
Podaje kolejny link http://mkweb.bcgsc.ca/color-summarizer/, który może być świetnym uzupełnieniem ImageJ do statystycznej analizy detekcji.