Qemu: Montando imagens.

Para montar  uma image  do QEMU  no filesystem,  devemos calcular  o [offset] da  partição. Ou seja multiplicar o setor inicial por 512 (quantiade de  bytes por setor). Veja o simples exemplo abaixo:

# sfdisk -luS hda1DB91.img
Disco hda1DB91.img: não foi possível obter a geometria

Disco hda1DB91.img: 248 cilindros, 255 cabeças, 63 setores/trilha
Unidades = setores de 512 bytes, contando a partir de 0

 Device Boot    Start       End   #sectors  Id  System
hda1DB91.img1            63    530144     530082  82  Linux swap / Solaris
hda1DB91.img2   *    530145   3984119    3453975  83  Linux
hda1DB91.img3             0         -          0   0  Vazia
hda1DB91.img4             0         -          0   0  Vazia

Efetue  o seguinte cálculo (setor inicial*512):

530145*512= 271434240

Agora  utilize o comando mount.

# mount -o loop,ro,noexec,offset=271434240 hda1DB91.img /mnt/suse9.1

Simples não…

Como copiar o seu CD do Playstation 1 no HD?

playstationGosto e muito dos  jogos do playstation 1.   Sendo assim, acho que não  preciso nem mencionar que utilizo o emulador ePSXe Yes!.

A seguir, os passos para criar uma imagen do seu jogo preferido no HD.  Vale a  pena ressaltar que esta imagen além de servir como backup, podemos utiliza-la no emulador ePSXe   ( Viva  \o/).

Em  primeiro lugar,  devemos detectar o ID do device (  no meu caso 3,0,0).

$ cdrecord -scanbus
scsibus3:
 3,0,0   300) 'TEAC    ' 'DVD+-RW DVW28SLC' 'A.06' Removable CD-ROM
 3,1,0   301) *
 3,2,0   302) *
 3,3,0   303) *
 3,4,0   304) *
 3,5,0   305) *
 3,6,0   306) *
 3,7,0   307) *

Em seguida,  insira  o Cd do game no driver  e execute o comando cdrdao como  no exemplo  a seguir.

$ cdrdao read-cd --read-raw --datafile spiderman.bin --device 3,0,0 --driver generic-mmc-raw spiderman.toc
Cdrdao version 1.2.2 - (C) Andreas Mueller <andreas@daneb.de>
 SCSI interface library - (C) Joerg Schilling
 Paranoia DAE library - (C) Monty

Check http://cdrdao.sourceforge.net/drives.html#dt for current driver tables.

WARNING: the deprecated pseudo SCSI syntax found as device specification.
Support for that may cease in the future versions of wodim. For now,
the device will be mapped to a block device file where possible.
Run "wodim --devices" for details.
Using libscg version 'Cdrkit-1.1.8'

3,0,0: TEAC DVD+-RW DVW28SLC    Rev: A.06
Using driver: Generic SCSI-3/MMC (raw writing) - Version 2.0 (options 0x0000)

Reading toc and track data...

Track   Mode    Flags  Start                Length
------------------------------------------------------------
 1      DATA    4      00:00:00(     0)     68:10:35(306785)
Leadout DATA    4      68:10:35(306785)

PQ sub-channel reading (data track) is supported, data format is BCD.
Raw P-W sub-channel reading (data track) is supported.
Copying data track 1 (MODE2_RAW): start 00:00:00, length 68:10:35 to "spiderman.bin"...
00:13:00

Para gravar o CD  a  partir  da  imagen,  basta  utilizar o comando a seguir…

$ cdrdao write –eject –speed 4 –device 3,0,0 –driver generic-mmc spiderman.toc

Fonte:  www.linuxnarede.com.br

Alocação dinâmica de matriz em C++

Já me deparei com  muito  código em C/C++ declarando matrizes como no exemplo a seguir:

int m[100000000];

Abaixo uma  maneira simples  para declarar e  dimensionar uma matriz durante  a  execução do  programa:

int* a = NULL;   // Inicializa o ponteiro
int n;           // Tamanho da matriz
cin >> n;        // Entrada de dados para o tamanho da matriz
a = new int[n];  // Allocação
for (int i=0; i<n; i++)
{
   a[i] = 0;       // atribuindo os valores para  cada elemento.
}
. . .  
delete [] a;  // Liberando a memória
a = NULL;

DVDisaster: Recupere DVDs/CDs danificados com riscos!

Se acidentalmente o seu DVD ou CD foi danificado com riscos, o pacote DVDisaster pode ser a sua salvação. O princípio básico da   aplicação consiste em ignorar o setor danificado, assim extraindo a maior quantidade de dados possíveis. Como se não bastasse, o aplicativo trabalha também com correções baseadas em codecs Yes!!!

Vale a conferir, versões Linux,Windows e Mac AQUI …

dvd

História em Quadrinho no Linux!

Comix é um visualizador de imagens  especialmente projetado  para lidar com quadrinhos.  A  seguir as  instruções  que utilizei  para  instala-lo.

# wget  http://downloads.sourceforge.net/project/comix/comix/comix-4.0.4/comix-4.0.4.tar.gz
# tar -zxvf comix-4.0.4.tar.gz
# cd  comix-4.0.4
# python install.py install
Checking dependencies ...    
Required dependencies:
 PyGTK ........................ OK
 Python Imaging Library ....... OK

Recommended dependencies:
 rar/unrar .................... OK

Installing Comix to /usr/local/ ...

Installed /usr/local/share/comix/src/about.py
Installed /usr/local/share/comix/src/about.pyc
Installed /usr/local/share/comix/src/archive.py
  "         "        "         "         "
  "         "        "         "         "   

Symlinked /usr/local/share/icons/hicolor/48x48/mimetypes/application-x-cbr.png
Symlinked /usr/local/share/icons/hicolor/48x48/mimetypes/application-x-cbt.png

Updated mime database (added .cbz, .cbr and .cbt file types.)

Registered comic archive thumbnailer in gconf (if available).
The thumbnailer is only supported by some file managers, such as Nautilus
and Thunar.
You might have to restart the file manager for the thumbnailer to be activated.
#

Vejam  a seguir,  o resultado final!

comix

Download único dos pacotes multimídia para diversas máquinas.

ympbuttonPara  instalar os pacotes multimídia no OpenSuse (Yes !!!), basta clicar nos links codecs-kde.ymp ou codecs-gnome.ymp disponíveis AQUI!.  Porém diversos pacotes RPM  não presente no DVD,  são baixados na internet.  Para dispensar  a  tarefa de downloads  repetitivos, basta modificar  a opção keeppackages=1 do arquivos de repositórios localizado em /etc/zypp/repos.d

Após a instalação na primeira máquina, basta copiar os  pacotes salvos na pasta /var/cache/zypp/packages/ para todos os  outros equipamentos  e executar o comado rpm  -ivh …

Math Kernel Library (MKL) da Intel®

intlogo

As  futuras versões dos projetos  comerciais de visão computacional, processamento de imagens e biometria utilizarão (ou já utilizam) a biblioteca MKL. Pelo simples motivo,  esta biblioteca,  para  aplicações de  alta performance  computacional  (HPC), é ideal para utilização de rotina matemáticas (embora  não seja de código aberto).  Mas atende e muito bem,  as áreas de ciência, engenharia e aplicações financeiras que exigem um desempenho máximo dos processadores da Intel.

Algumas vantagens:

  • Excelente desenpenho FFT (Transformada  de Fourier);
  • Álgebra linear ( LAPACK);
  • Biblioteca de vetores Matemáticos;
  • Biblioteca de vetores Estatísticos;
  • MKL é altamente aperfeiçoado para os  processadores Intel Itanium 2, Intel Xeon e Intel Pentium 4;
  • Execução automática dos processadores;
  • Excelente escala em Multiprocessadores;

Mais informações AQUI.

Testes:Face tracking em 3D.

320px-Eye_tracking_thru_glassUtilizando um conceito similar a  teoria da estimativa de gaze, é possível encontrar as  coordenadas aproximadas em  3 dimensão a  partir de imagens planas.  Teste laboratoriais demonstrou a  eficiência deste conceito matemático. Pretendo elaborar  uma biblioteca para interagir com a libhairCapture utilizando API V4L1/2 e cameras IP baseado no padrão MJPEG  (ISO/IEC 15444-1 e  derivados).

A  seguir a rotina  utilizada  para  o cálculo das coordenadas  no  espaço 3D seguido do  vídeo.

double x1 = r->x*scale; 
double x2 = (r->x+r->width)*scale; 
double angle = (r->width)*scale * horizontalGradesPerPixel * 3.141592654/180; 
double headDist = (headWidth/2) / (tan(angle/2)); //em metros 
double xAngle = ((img->width)/2.0 - ((r->x+r->width*0.5)*scale)) * horizontalGradesPerPixel * 3.141592654/180; 
double headX =  tan(xAngle) * headDist; 
double yAngle = ((img->height)/2.0 -((r->y+r->height*0.5)*scale)) * verticalGradesPerPixel * 3.141592654/180; 
double headY = tan(yAngle) * headDist; 
printf("HeadX = %.4lfm HeadY = %.4lfm HeadZ = %.4lfm pix %lf\n", headX,headY,headDist,(img->width)/2.0 - ((r->x+r->width*0.5)*scale));