Auch wieder geklaut aber für mich wichtig
https://ssl.buetow.org/comp/2010/03/terminal-broken.html
Einfach blind "tput reset" eintippen, enter, done.
Auch wieder geklaut aber für mich wichtig
https://ssl.buetow.org/comp/2010/03/terminal-broken.html
Einfach blind "tput reset" eintippen, enter, done.
Zufällig auf einem anderen Blog was gefunden. Da ich das aber als sehr wichtig ansehen, und mir auch schon zwei mal hätte helfen können. Hier die Kopie.
https://ssl.buetow.org/comp/2010/10/geloschte-dateien-aus-dem-proc-fs-holen.html
Letztes Jahr ist irgendwie die Welle für den oberen Rotor locker geworden. Da wo die Welle in den Plastikhalter rein geht. Zumindest kam der Heli nicht mehr hoch und man sah auch, dass sich der Rotor langsamer drehte als normal.
Wenn man die Welle ausbaut und von Hand mit der Zange dreht, dann merkt man schon, dass sie durchdreht. Nur wie wieder fest bekommen? Haben versucht ein kleines Loch durch zu borhen, aber das kann man total vergessen. Die Welle ist aus einem viel zu harten Materiel, da fängt der Bohrer das heulen an. Ausserdem ist sie nur 3mm dick.
Also haben wir die gute alte Schmelz-Methode angewand. Diesmal aber mit einem Heißluftgebläse statt Lötkolben. Welle heiß machen und einfach ins Plastik gedrückt bzw kurz mit dem Hammer nachgeholfen. Bombenfest, kerzengerade :D
Auf zum nächsten Crash...
Mehrere Seiten auf eine Seite drucken ist einfach, aber umgekehrt nicht so. Ausser man installiert sich poster.
apt-get install poster
Und schon hat man im kprinter Menu ein "Poster" Eintrag und kann nun auswählen, auf wieviele Papiere man drucken will. Ein wenig herum experimenteren, in der Vorschau sich das Ergebnis ansehen und fertig
Ebenfalls erstaunlicher Zusammenhang:
(1) Das Schlechteste setzt sich immer durch.
(2) Die Masse entscheidet über das, was produziert wird.
(1->2) Die Masse nutzt das Schlechteste.
((1->2)') Gute Sachen werden nur von einer Minderheit genutzt.
(1') Das, was am wenigsten verbreitet ist, ist das bessere.
Schaut euch mal dieses geniale Video an
http://www.youtube.com/watch?v=NtoYuwmTzt0
Wird das Video nicht zwischendrin irgendwie blasser? Es kommt mir gerade so vor. Hmmm man könnte ja mal die Farben analysieren. Also jedes einzelne Frame in den HSV (H Farbwert, S Sättigung, V Wert) umrechnen, den Mittelwert über alle Pixel bilden und dann grafisch auftragen.
Gesagt, getan.
Auf der X-Achse ist die Framenummer aufgetragen. Auf der Y-Achse HSV. Die rote Kurve ist H, grün S und blau V.
Man kann deutlich den Vor- und Abspann erkennen. Sonst bleiben die Werte relativ gleich. Die Kamera bewegt sich aber auch nicht.
Aber drei mal geht die Sättigung runter. Das Bild wird blass und bläulicher. Wie vermutet :)
Schön sind auch noch die ganzen Sprünge zu erkennen, wenn das Bild schnell ein und ausgeblendet wird.
Und hier mein quick&dirty Programm. Habe mplayer genutzt um an die einzelnen Frames zu kommen, da openCV Version 1 so sein Probleme mit Linux und avi hat.
mplayer ../Equilibrium\ -\ Unbesiegt\ Piano\ Cover.flv -vo jpeg -ao null
#include < stdio.h >
#include < stdlib.h >
#include < cv.h >
#include < highgui.h >
#define getPixel(img,x,y) (((uchar*)(img->imageData + img->widthStep*(y)))[x])
#define putPixel(img,x,y,color) (((uchar*)(img->imageData + img->widthStep*(y)))[x] = color)
#define getPixelB(img,x,y) (((uchar*)(img->imageData + img->widthStep*(y)))[x*3])
#define putPixelB(img,x,y,color) (((uchar*)(img->imageData + img->widthStep*(y)))[x*3] = color)
#define getPixelG(img,x,y) (((uchar*)(img->imageData + img->widthStep*(y)))[(x)*3+1])
#define putPixelG(img,x,y,color) (((uchar*)(img->imageData + img->widthStep*(y))) [(x)*3+1] = color)
#define getPixelR(img,x,y) (((uchar*)(img->imageData + img->widthStep*(y)))[(x)*3+2])
#define putPixelR(img,x,y,color) (((uchar*)(img->imageData + img->widthStep*(y)))[(x)*3+2] = color)
using namespace std;
int main()
{
char filename[18] ;
IplImage *image = 0;
IplImage* hsv = 0;
cvNamedWindow("original",1);
int i = 1;
snprintf(filename, 18,"jpg/%08d.jpg",i++);
image = cvLoadImage(filename);
hsv = cvCreateImage( cvGetSize(image), IPL_DEPTH_8U, 3 );
IplImage* h_plane = cvCreateImage( cvGetSize( image ), 8, 1 );
IplImage* s_plane = cvCreateImage( cvGetSize( image ), 8, 1 );
IplImage* v_plane = cvCreateImage( cvGetSize( image ), 8, 1 );
cvCvtPixToPlane( hsv, h_plane, s_plane, v_plane, 0 );
while(1)
{
snprintf(filename, 18,"jpg/%08d.jpg",i++);
image = cvLoadImage(filename);
if(image == 0)
break;
cvCvtColor( image, hsv, CV_BGR2HSV );
cvCvtPixToPlane( hsv, h_plane, s_plane, v_plane, 0 );
float meanh = 0, means = 0, meanv = 0;
for(int y = 0; y < hsv->height; y++)
{
for(int x = 0; x < hsv->width; x++)
{
meanh += getPixel(h_plane, x, y);
means += getPixel(s_plane, x, y);
meanv += getPixel(v_plane, x, y);
}
}
meanh /= image->width * image->height;
means /= image->width * image->height;
meanv /= image->width * image->height;
printf("%f %f %f\n", meanh, means, meanv);
cvShowImage("original", image);
cvWaitKey(10);
cvReleaseImage(&image);
}
}
Wer gern den QtCreator benutzt, hier noch mein .pro File.
SOURCES += main.cpp
INCLUDEPATH += /usr/include/opencv
CONFIG += link_pkgconfig
PKGCONFIG += opencv
Hab die Tage mein altes Primzahl Projekt wieder ausgegraben. Der nächste Schritt war, die Daten mal mit der Fouriertransforamtion genauer under die Lupe zu nehmen. Um mit der Fouriertransformation etwas vertrauter zu werden, habe ich sie auch gleich mal in C++ implementiert. War auch garnicht so schwer. Zwei Schleifen und komplexe Multiplikationen.
Da der g++ eine Klasse für komplexe Zahlen anbietet, war auch das nicht so schwer. Nur das interpretieren der fouriertransformatieren Daten war nicht so einfach.
In den animierten Bilder unten sieht man das Ergebnis. Die Daten sind in rot dargestellt. Und in grün die Fourierreihe wie sie sich langsam den Daten anpasst. Es wurden aber nur Frequenzen mit einer relativ hohen Amplitute verwendet.
Hier ein vergrösserter Ausschnitt.
Mal sehen was die Tage noch so an Erkenntnisse bringen. Vllt. zeigen sich in größeren Datensätze irgendwelche periodischen Muster.
Das Zauberwort heisst sysinfo.
// Um den freien RAM zu bestimmen
#include < sys/sysinfo.h >struct sysinfo meminfo;
if(sysinfo(&meminfo) != 0)
perror("Kann keine RAM Infos auslesen");printf("mem total %i\n" ,meminfo.totalram/1024/1024);
free memory usage
Powered by WordPress