Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]8226[/thread]

2 Bitmaps vergleichen: ganz doll schnell



<< >> 9 Einträge, 1 Seite
pktm
 2006-08-08 18:41
#68730 #68730
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Hallo!

Ich würde gerne 2 Bitmaps miteinander vergleichen. Dazu habe ich dieses nette Modul Image::Compare gefunden, was mir allerdings bislang noch kein brauchbares Ergebnis geliefert hat.

Also dachte ich mir, könnt eich es ja auch selber schrieben. Dummerweise braucht das Modul Image::BMP irrsinnig lange um ein einzelnes Bild zu laden (so an die 60 Sekunden bei mir).

Der Vergleich sollte am besten in 2 Sekunden von statten gehen.
Gibt es eine Chance, diesen Vergleich auch ohne Power-PC irgendwie schnell zu vollziehen?

Beim Freaktreffen 2003 (? irgendwann früher halt) i nPopcorn5s Internetcafé hatte doch mal jemand ein programm vorgestellt, mit dem man BMPs in netten Buchstaben ansehen konnte.
Eventuell hat jemand sowas?

Ansonsten muss ich mein Projekt, welches Gott sei Dank nicht so wichtig ist, an den Nagel hängen ;-(

Grüße, pktm

EDIT: ich brächte die Koordinaten, wo sich das Bild signifikant vom anderen unterscheidet...\n\n

<!--EDIT|pktm|1155049151-->
http://www.intergastro-service.de (mein erstes CMS :) )
renee
 2006-08-08 18:48
#68731 #68731
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Meinst Du so etwas:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/usr/bin/perl

use strict;
use warnings;
use Tk;
use Tk::PNG;
use Tk::JPEG;
use Tk::Text;
use Tk::NoteBook;
use Tk::Pane;
use Image::Size;
use Data::Dumper;

my $mw = MainWindow->new();
my $menu = $mw->Menu(-type => 'menubar');
createMenu($menu);
$mw->configure(-menu => $menu);

$mw->bind('<Control-Key-o>', sub{openFile()});
$mw->bind('<Control-Key-s>', sub{saveDumpe()});
$mw->bind('<Control-Key-q>', sub{exit});

my $nb = $mw->NoteBook()->pack();
my $nb_image = $nb->add('img', -label => 'Image');
my $nb_text = $nb->add('dmp', -label => 'Dump');
my $txt_field = $nb_text->Scrolled('Text', -scrollbars => 'se')->pack(-expand => 1, -fill => 'both');

my $pane = $nb_image->Scrolled('Pane', -scrollbars => 'se')->pack(-expand => 1, -fill => 'both');
my $label = $pane->Label()->pack(-expand => 1, -fill => 'both');
#my $label = $nb_image->Scrolled('Canvas',-scrollregion => [0,0,0,0], -scrollbars => 'se')->pack(-expand => 1, -fill => 'both');

MainLoop;

#------------------------------------------------------------------------------#
# Subroutines #
#------------------------------------------------------------------------------#

sub createMenu{
my $menufont = '{Arial} 8 {normal}';
$menu->cascade(-label => 'File',
-underline => 0,
-font => $menufont,
);
my $menu_app = $menu->Menu(-tearoff => 0);
$menu_app->command(-label => "open...",
-command => [\&openFile],
-accelerator => 'Ctrl-O',
);
$menu_app->command(-label => 'save dump...',
-command => [\&saveDump],
-accelerator => 'Ctrl-S',
);
$menu_app->command(-label => 'close',
-command => sub{exit;},
-accelerator => 'Ctrl-Q',
);
$menu->entryconfigure('File', -menu => $menu_app);

}# createMenu

sub openFile{
my @filetypes = (['All Images', ['.GIF','.XBM','.XPM','.BMP','.JPEG','.JPG','.PNG','.PPM','.PGM']],
['GIF Images', '.GIF'],
['XBM Images', '.XBM'],
['XPM Images', '.XPM'],
['BMP Images', '.BMP'],
['JPG Images', ['.JPEG','.JPG']],
['PNG Images', '.PNG'],
['PPM/PGM Images', ['.PPM','.PGM']],);
my $file = $mw->getOpenFile(-filetypes => \@filetypes);
return unless $file;
my $photo = $mw->Photo(-file => $file);

=pod
my ($x_size, $y_size) = imgsize($file);
$label->configure(-scrollregion => [0,0,$x_size,$y_size]);
my $test = $label->cget(-scrollregion);
print Dumper($test);
$label->delete('all');
$label->createImage($x_size,-$y_size,-image => $photo);
=cut

$label->configure(-image => $photo);
my ($suffix) = $file =~ /\.(.*?)$/;
$suffix = 'JPEG' if($suffix eq 'jpg' or $suffix eq 'JPG');
my $string = $photo->data(-format => $suffix);
$txt_field->delete('0.0','end');
$txt_field->Insert($string);
}# openFile

sub saveDump{
my $file = $mw->getSaveFile();
return unless $file;
if(open(my $fh,">$file")){
print $fh $txt_field->get('0.0','end');
close $fh;
}
}# saveDump
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
renee
 2006-08-08 18:52
#68732 #68732
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Kannst Du nicht einfach Prüfsummen errechnen und diese vergleichen? Oder mit CPAN:File::Compare.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pktm
 2006-08-08 18:54
#68733 #68733
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Ja, genau. Und da reicht ein my $string = $photo->data(-format => $suffix);?
Kann man von diesem Text eigentlich irgendwie auf die Koordinaten schließen? Weil, die bräuchte ich nämlich (habs vergessenoben zu erwähnen...).
http://www.intergastro-service.de (mein erstes CMS :) )
renee
 2006-08-08 18:56
#68734 #68734
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Welche Koordinaten? Du meinst die Größe? Dafür müsstest Du den Teil, den ich auskommentiert habe an Deine Wünsche anpassen.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pktm
 2006-08-08 19:02
#68735 #68735
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Nun, ich würde gerne so ein kleines Programm schreiben, dass mir 2 Bilder miteinandervergleicht und die Differenzen anzeigt, bzw, mir deren Koordinaten ausspuckt. Wie diese Bilderrätsel in der Zeitung, wo man die Unterschiede zwischen 2 ähnlichen Bildern suchen muss.
http://www.intergastro-service.de (mein erstes CMS :) )
renee
 2006-08-08 19:09
#68736 #68736
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn Du so etwas komplexes machen willst, dann würde ich Dir zu PDL raten.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
vayu
 2006-08-09 11:02
#68737 #68737
User since
2005-01-13
782 Artikel
BenutzerIn
[default_avatar]
also das PDL klingt ja mla echt GUT ... das kannte ich bisher noch gar nicht :)
renee
 2006-08-09 11:34
#68738 #68738
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
In "Algorithmen mit Perl" steht einiges dazu drin, wie man mit PDL Bilder bearbeiten kann.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 9 Einträge, 1 Seite



View all threads created 2006-08-08 18:41.