12 de set de 2011

Instalando o Sun Java JRE no Ubuntu 10.10

É assim ó:

$ sudo add-apt-repository ppa:sun-java-community-team/sun-java6
$ sudo apt-get install sun-java6-jre

Pronto!

5 de set de 2010

Script Python para cortar todas imagens em um arquivo e salvar

'''
Created on 05/09/2010
@author: tiago buriol
'''
import os
import Image  # PIL - Python Image Library (instale via Sinaptyc)

diretorio = "/home/buriol/PYTHON_PROJECTS/CILAMCE2010/src/ReconstrCROPPED"
arquivos = os.listdir(diretorio)
arquivos.sort()  #ordena os arquivos pelo nome
n=0

# Corta imagens e salva
for arquivo in arquivos:
    fullpath = os.path.join(diretorio,arquivo)
    if os.path.isfile(fullpath):
        n = n + 1
        img = Image.open(fullpath)
        print "Lendo arquivo", n, "de", len(arquivos)
        im =  img.crop([0,0,128,128])
        im.save(os.path.join("/home/buriol/Imagens",arquivo), "BMP")

Visualizando tensores como elipsóides usando VTK e Python

# Biblioteca vtk para python
from vtk import *

# ENTRADA DE DADOS
# Pontos
points = vtkPoints()
points.SetNumberOfPoints(3)
points.InsertPoint(0,76.3221,77.55,6.51956)
points.InsertPoint(1,76.61,77.2565,6.48612)
points.InsertPoint(2,77.2707,76.61,6.44554)
# Tensores
dbar = vtkDoubleArray()
dbar.SetNumberOfTuples(3)
dbar.SetNumberOfComponents(9)
dbar.InsertTuple9(0,-1.15233,0.0831558,0.0469417,0.0831558,-1.25721,0.10167,0.0469417,0.10167,-1.10715)
dbar.InsertTuple9(1,-1.18056,0.0817272,0.016076,0.0817272,-1.32675,0.125833,0.016076,0.125833,-1.15438)
dbar.InsertTuple9(2,-1.18056,0.0817272,0.016076,0.0817272,-1.32675,0.125833,0.016076,0.125833,-1.15438)

# PROCESSAMENTO PARA GERAR OS GLIFOS
# Polydata
indata = vtkPolyData()
indata.SetPoints(points)
indata.GetPointData().SetTensors(dbar)
# Codigo para uma esfera
src = vtkSphereSource()
src.SetThetaResolution(16)
src.SetPhiResolution(16)
# glifos
epp = vtkTensorGlyph()
epp.SetInput(indata)
epp.SetSourceConnection(src.GetOutputPort())
epp.SetScaleFactor(1)
epp.ClampScalingOn()
#epp.SymmetricOn()
epp.ColorGlyphsOff()
epp.ThreeGlyphsOff()
epp.ExtractEigenvaluesOn()
epp.SetColorModeToEigenvalues()
# Mapeador para os dados
map = vtkPolyDataMapper()
map.SetInputConnection(epp.GetOutputPort())

# VISUALIZACAO
# Ator
elactor = vtkActor()
elactor.SetMapper(map)
# Renderizador
renderer = vtkRenderer()
renderer.AddActor(elactor)
# Janela
renderWindow = vtkRenderWindow()
renderWindow.AddRenderer( renderer )
# Interador
interactor = vtkRenderWindowInteractor()
interactor.SetRenderWindow(renderWindow)
interactor.Initialize()
interactor.Start()

17 de ago de 2010

Habilitando as três NVidia GeForce GTX280 no Ubuntu 9.04

.
Primeiramente, foi necessário achar o "endereço" do barramento de cada placa fazendo:

$ sudo lspci

que forneceu a seguinte saída (somente a parte que interessa):

...
02:02.0 PCI bridge: nVidia Corporation Device 05b1 (rev a2)
03:00.0 VGA compatible controller: nVidia Corporation GT200 [GTX280] (rev a1)
04:00.0 VGA compatible controller: nVidia Corporation GT200 [GTX280] (rev a1)

05:0b.0 FireWire (IEEE 1394): VIA Technologies, Inc. VT6306 Fire II IEEE 1394 OHCI Link Layer Controller (rev c0)
06:00.0 Audio device: Creative Labs [X-Fi Titanium series] EMU20k2 (rev 03)
07:00.0 VGA compatible controller: nVidia Corporation GT200 [GTX280] (rev a1)

...

Então alterei o arquivo xorg-config fazendo:

$ sudo gedit /etc/X11/xorg.conf
Alterando as seções "Device" da placa de vídeo como segue:

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 280"
    BusID          "PCI:3:0:0"
    Screen          0
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 280"
    BusID          "PCI:3:0:0"
    Screen          1
EndSection

Section "Device"
    Identifier     "Device2"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 280"
    BusID          "PCI:4:0:0"
EndSection

Section "Device"
    Identifier     "Device3"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 280"
    BusID          "PCI:7:0:0"
EndSection



Para o sistema detectar as 3 placas GTX280 tive que alterar o arquivo  menu.lst, do grub, fazendo:

$ sudo gedit /boot/grub/menu.lst

e adicionando a parte em negrito mostrada abaixo

title        Ubuntu 9.04, kernel 2.6.28-19-generic
uppermem 524288
uuid        efe8ac3e-d12d-43b9-9f15-2df7836e7c1d
kernel        /boot/vmlinuz-2.6.28-19-generic root=UUID=efe8ac3e-d12d-43b9-9f15-2df7836e7c1d ro quiet splash vmalloc=256MB pci=nommconf
initrd        /boot/initrd.img-2.6.28-19-generic
quiet

Depois de reiniciar, digitei no console os seguintes comandos

$ sudo nvidia-xconfig --multigpu=on
$ sudo nvidia-xconfig --sli=on

 
Depois de reiniciar novamente apareceu as três placas no painel de nvidia-settings.


19 de mai de 2010

Script Python parta mudar extensão e nomes de arquivos em um diretório

#--------------------------------------------------------------------
# renomeia.py
#
# Script Python para modificar a extensao de aquivos em um diretorio
# e mudar o nome
#
# Uso:
# Defina o diretorio, a extensão que quer retirar e a nova extensao, que
# pode ser vazia (" ").
# Por exemplo:
# diretorio = "/home/gildo/imagens"
# extensao = ".*JPEG" (para retirar as extensoes ".dcm", nao esqueca o asterisco)
# novaExtensao = ".jpg" (nesse caso eh vazia, mas poderia ser ".raw", por ex.)
#--------------------------------------------------------------------

import re
import string
import os

# Coloque os seus parametros aqui...
diretorio = "/BACKUP/DICOM_FILES/AMNESIX"
extensao = ".*dcm"
novaExtensao = " "  # nesse caso eh vazia
parteQueSai = "IM-0001-"
parteQueSubstitui = "slice"

# Muda extensao
reg = re.compile(extensao)
if os.path.isdir(diretorio) and not os.path.islink(diretorio):
    arquivos = os.listdir(diretorio)
    for arquivo in arquivos:
        newExt = re.compile(extensao).match
        if newExt(arquivo):
            c = os.path.splitext(arquivo)
            b = c[0] + novaExtensao
            a = os.path.join(diretorio,arquivo)
            b = os.path.join(diretorio,b)
            os.rename(a,b)

# Modifica nome
if os.path.isdir(diretorio) and not os.path.islink(diretorio):
    arquivos = os.listdir(diretorio)
    for arquivo in arquivos:
    print arquivo
        novoNome = string.replace(arquivo, parteQueSai, parteQueSubstitui)
        fullpathOld = os.path.join(diretorio,arquivo)
        fullpathNew = os.path.join(diretorio,novoNome)
        os.rename(fullpathOld, fullpathNew)



# Hasta...