Pynovisao - Iniciando README.md

parent d625ee43
# Título: Pynovisao
## Autor: Alessandro dos Santos Ferreira
## Autor: Hemerson Pistori
## Resumo:
Pacote de Visão Computacional do Inovisão.
## Como Usar
- A partir da pasta raiz, execute os seguintes comandos:
```
$ cd src
```
```
$ python pynovisao.py
```
## Dependências - Aplicação base - Python
### Linux
- kubuntu trusty 14.04.2 TLS
- Python 2.7.6
- scikit-image
- Opencv 2.7
- python-weka-wrapper 0.3.5
- tk-dev
### Windows
- Instale o [Anaconda](http://continuum.io/downloads) que contém todas dependências, inclusive o Python. Basta fazer o download do arquivo .exe e executá-lo.
## Como instalar o OpenCV
### Linux
Seguir as instruções disponíveis em [OpenCV-Linux](http://docs.opencv.org/doc/tutorials/introduction/linux_install/linux_install.html#linux-installation). Lí em algum lugar que dá para instalar com o comando abaixo, não testei mas pode funcionar:
```
$ sudo apt-get install python-opencv
```
Pode ser que seja necessário instalar também uma versão mais antiga do opencv (2.4*) caso apareça um erro com o comando import cv (que sumiu na versão 3.0.0 do opencv). Neste caso, tente seguir estes passos: [Instalando opencv 2.4] (https://sites.google.com/a/computacao.ufcg.edu.br/lvc/aprendizado/opencv).
### Windows
- [OpenCV-Python](https://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows.html#install-opencv-python-in-windows).
1. Baixe o [Opencv](https://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_setup/py_setup_in_windows/py_setup_in_windows.html#install-opencv-python-in-windows)
2. Extraia os arquivos no local desejado.
3. Vá para a pasta opencv/build/python/2.7.
4. Cipie o arquivo cv2.pyd para C:/Python27/lib/site-packeges.
5. Abra o terminal e digite python para executar o interpretador.
6. Digite:
```
>>> import cv2
>>> print cv2.__version__
```
## Como instalar scikit-image e arff
```
$ sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose python-pip python-networkx libfreetype6-dev
$ sudo pip install -U scikit-image
```
Em uma das máquinas em que tentei instalar deu um erro que resolvi rodando o comando abaixo antes de executar a linha acima:
```
$ sudo apt-get build-dep python-matplotlib
$ sudo pip install cycler
```
## Como instalar o python-weka-wrapper
### Ubuntu
Primeiro você precisa compilar os código C/C+ e os módulos Python:
$ sudo apt-get install build-essential python-dev
Agora você pode instalar os vários pacotes que precisamos para instalar o python-weka-wrapper:
$ sudo apt-get install python-pip python-numpy
Os seguintes pacotes são opcionais mas necessários se você deseja uma representação gráfica:
$ sudo apt-get install python-imaging python-matplotlib python-pygraphviz
Instale OpenJDK para obter todos os cabeçalhos que javabridge compila:
$ sudo apt-get install default-jdk
No meu ubuntu 14.04 tive problemas com dependência, acabei instalando o java da oracle seguindo as orientações deste site: [instalando java da oracle](http://askubuntu.com/questions/521145/how-to-install-oracle-java-on-ubuntu-14-04)
Finalmente você pode usar pip para instalar os pacotes Python que não estão disponíveis no repositório:
$ sudo pip install javabridge
$ sudo pip install python-weka-wrapper
### Windows
Por favor note: você precisa certificar-se que os bits do seu ambiente é consistente. Isto é, se você instalar uma versão de Python 32-bit você deve instalar um JDK 32-bit e numpy 32-bit ( ou então todos eles devem ser 64-bit ).
Realize os seguintes passos:
Instale Python, esteja certo que você checou Add python.exe to path durante a instalação
Adicione os scripts Python eu sua variável de ambiente PATH, por exemplo, :\\Python27\\Scripts
Instale pip com os seguintes passos:
* baixe daqui https://bootstrap.pypa.io/get-pip.py
* instale usando python get-pip.py
Instale numpy
* baixe numpy 1.9.x MKL ( ou superior ) para Python 2.7 (cp27) e sua configuração de bit (32 ou 64 bit)
* instale o arquivo .whl usando pip: pip install numpy-X.Y.Z.whl
Instale .Net 4.0 (se já não estiver instalado)
Instale Windows SDK 7.1
Abra o prompt de comando do Windows SDK (não o prompt de comando convencional!) e instale javabridge e python-weka-wrapper
> set MSSdk=1
> set DISTUTILS_USE_SDK=1
> pip install javabridge
> pip install python-weka-wrapper
Agora você pode executar python-weka-wrapper usando o prompt de comando convencional também.
Se você deseja as funcionalidades gráficas você precisa instalar matplotlib também:
* baixe matplotlib para Python 2.7 (cp27) e sua configuração de bit (32 or 64 bit)
* instale o arquivo .whl usando pip: pip install matplotlib-X.Y.Z.whl
## Mais informações
- http://pythonhosted.org/python-weka-wrapper/install.html
- http://pythonhosted.org/python-weka-wrapper/troubleshooting.html
## Como instalar o tk-deve
### Ubuntu
```
$ sudo apt-get install tk tk-dev
```
Em caso de erro *cannot import name _tkagg*, tente os seguintes comandos
```
$ sudo apt-get install tk tk-dev
$ sudo pip uninstall matplotlib
$ sudo pip install matplotlib
```
A partir da pasta raiz, execute os seguintes comandos:
$ cd src
$ python pynovisao.py
É necessário que estejam instaladas todas as dependências do python-superpixel e a biblioteca Tkinter.
#minimal example...
#import matplotlib, sys
#matplotlib.use('TkAgg')
#from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
#from matplotlib import pylab as plt
#from scipy import ndimage
#if sys.version_info[0] < 3:
#import Tkinter as Tk
#else:
#import tkinter as Tk
#root = Tk.Tk()
#root.wm_title("minimal example")
#root.image = plt.imread('test.jpg')
#fig = plt.figure(figsize=(5,4))
#im = plt.imshow(root.image) # later use a.set_data(new_data)
#ax = plt.gca()
#ax.set_xticklabels([])
#ax.set_yticklabels([])
## a tk.DrawingArea
#canvas = FigureCanvasTkAgg(fig, master=root)
#canvas.show()
#canvas.get_tk_widget().pack(side=Tk.TOP, fill=Tk.BOTH, expand=1)
#def rotate(*args):
#print 'rotate button press...'
#root.image = ndimage.rotate(root.image, 90)
#im.set_data(root.image)
#canvas.draw()
#def quit(*args):
#print 'quit button press...'
#root.quit()
#root.destroy()
#button_rotate = Tk.Button(master = root, text = 'Rotate', command = rotate)
#button_quit = Tk.Button(master = root, text = 'Quit', command = quit)
#button_quit.pack(side=Tk.LEFT)
#button_rotate.pack()
#Tk.mainloop()
import Tkinter, Tkconstants, tkFileDialog
class TkFileDialogExample(Tkinter.Frame):
def __init__(self, root):
Tkinter.Frame.__init__(self, root)
# options for buttons
button_opt = {'fill': Tkconstants.BOTH, 'padx': 5, 'pady': 5}
# define buttons
Tkinter.Button(self, text='askopenfile', command=self.askopenfile).pack(**button_opt)
Tkinter.Button(self, text='askopenfilename', command=self.askopenfilename).pack(**button_opt)
Tkinter.Button(self, text='asksaveasfile', command=self.asksaveasfile).pack(**button_opt)
Tkinter.Button(self, text='asksaveasfilename', command=self.asksaveasfilename).pack(**button_opt)
Tkinter.Button(self, text='askdirectory', command=self.askdirectory).pack(**button_opt)
# define options for opening or saving a file
self.file_opt = options = {}
options['defaultextension'] = '.txt'
options['filetypes'] = [('all files', '.*'), ('text files', '.txt')]
options['initialdir'] = 'C:\\'
options['initialfile'] = 'myfile.txt'
options['parent'] = root
options['title'] = 'This is a title'
# This is only available on the Macintosh, and only when Navigation Services are installed.
#options['message'] = 'message'
# if you use the multiple file version of the module functions this option is set automatically.
#options['multiple'] = 1
# defining options for opening a directory
self.dir_opt = options = {}
options['initialdir'] = 'C:\\'
options['mustexist'] = False
options['parent'] = root
options['title'] = 'This is a title'
def askopenfile(self):
"""Returns an opened file in read mode."""
return tkFileDialog.askopenfile(mode='r', **self.file_opt)
def askopenfilename(self):
"""Returns an opened file in read mode.
This time the dialog just returns a filename and the file is opened by your own code.
"""
# get filename
filename = tkFileDialog.askopenfilename(**self.file_opt)
# open file on your own
if filename:
return open(filename, 'r')
def asksaveasfile(self):
"""Returns an opened file in write mode."""
return tkFileDialog.asksaveasfile(mode='w', **self.file_opt)
def asksaveasfilename(self):
"""Returns an opened file in write mode.
This time the dialog just returns a filename and the file is opened by your own code.
"""
# get filename
filename = tkFileDialog.asksaveasfilename(**self.file_opt)
# open file on your own
if filename:
return open(filename, 'w')
def askdirectory(self):
"""Returns a selected directoryname."""
return tkFileDialog.askdirectory(**self.dir_opt)
if __name__=='__main__':
root = Tkinter.Tk()
TkFileDialogExample(root).pack()
root.mainloop()
\ No newline at end of file
class x(object):
def __init__(self):
pass
def act(self, f, *args):
f(*args)
def m(self):
print 1
def n(self, v):
print v
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment