Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.net  
   

Die mobilen Seiten von c++.net:
https://m.c-plusplus.net

  
C++ Forum :: Die Artikel ::  Grundlegende Algorithmen in der Bildverarbeitung  
Gehen Sie zu Seite Zurück  1, 2, 3, 4, 5, 6
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
McNeal
Unregistrierter




Beitrag McNeal Unregistrierter 00:59:15 10.06.2009   Titel:   gauss filter            Zitieren

hallo,

ich brauche für ein Projekt einen 3d gauss filter in c++ ....hat da vll jemand nen code? oder kann man für ein 3d objekt auch einen 2d filter verwenden?
Den in 2d findet man ja hier schon...vll kann man den auch einfach umschreiben nur meiner einer ist dazu leider nicht im stande :( .

lg
pumuckl
Alt-Moderator

Benutzerprofil
Anmeldungsdatum: 21.06.2005
Beiträge: 7332
Beitrag pumuckl Alt-Moderator 10:19:12 10.06.2009   Titel:   Re: gauss filter            Zitieren

McNeal schrieb:
vll kann man den auch einfach umschreiben nur meiner einer ist dazu leider nicht im stande :(


Dann fang doch einfach schonmal an damit und wenn du dann tatsächlich auf Probleme stößt fragst du im entsprechenden Forum nach. Eine Fertiglösung wirst du hier im Forum wohl kaum einfach vorgesetzt bekommen.

_________________
Simplifiy C++! - Blog
Gregor
Moderator

Benutzerprofil
Anmeldungsdatum: 16.01.2002
Beiträge: 8679
Beitrag Gregor Moderator 13:51:10 26.06.2009   Titel:   Re: gauss filter            Zitieren

McNeal schrieb:

ich brauche für ein Projekt einen 3d gauss filter in c++ ....hat da vll jemand nen code? oder kann man für ein 3d objekt auch einen 2d filter verwenden?
Den in 2d findet man ja hier schon...vll kann man den auch einfach umschreiben nur meiner einer ist dazu leider nicht im stande :( .

Guck Dir mal die Vigra-Bildverarbeitungsbibliothek an. Die ist ausgesprochen gut und realisiert viele Algorithmen für den allgemeinen Fall von n-dimensionalen Bildern. Einen Gauss-Filter für dreidimensionale Bilder findest Du da auf jeden Fall.

_________________
"Die Mathematiker sind eine Art Franzosen: Redet man zu ihnen, so übersetzen sie es in ihre Sprache, und dann ist es alsobald ganz etwas anderes." - Johann Wolfgang von Goethe


Zuletzt bearbeitet von Gregor am 13:52:38 26.06.2009, insgesamt 1-mal bearbeitet
morganlefay
Unregistrierter




Beitrag morganlefay Unregistrierter 14:55:21 29.01.2010   Titel:   Mittelwert            Zitieren

Hallo!
Habe auch ein kleines Problem:

Will einen Mittelwertfilter beliebiger Größe separieren, also erst die Zeilen und danach die Spalten durchlaufen. Das ganze ist über Borland c++ geschrieben und hab ne eigene Klasse, die mein geladenes Bild in einen Array des Typs unsigned char. Hier mal der Code:

C++:
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
Image* Image::MWSep(int Maske){
  if (Maske % 2 == 0) { //Es sollen nur ungrade Filtergrößen zugelassen werden
  return 0;
  }
 
  int radius = Maske / 2;
  int pixel; //Zum Hochzählen
  Image* ci = new Image( width, height,format); //2 neue Images angelegt, um das jeweilige Ergebnisbild zu speichern
  Image* cj = new Image( width, height,format);
//MW Filter Spalten
  for (int i = 0; i < chanel; i++) {                    // Alle Kanäle
    for (int j = 0; j < height ; j++) {         // Alle Zeilen
      for (int k = 0; k < width ; k++) {    // Alle Spalten
        if(k<radius||k>height-radius){  //Rand bekommt das Ursprungsbild
          ci->Data[i][j*width+k]=Data[i][j*width+k];
        }
        else{
        //eigendlicher Mittelwertfilter, über alle Zeilen
    pixel = 0;
    for(int l=k-radius; l<= k+radius; l++){ //Zeilen
        pixel+= Data[i][l*width+j];
     }
      ci->Data[i][j*width+k]=(double) pixel /Maske + 0.5;
    }
    }
  }
}
    //MW Filter Über alle Spalten
      for (int i = 0; i < chanel; i++) {                    // Alle Kanäle
        for (int j = 0; j < height ; j++) {         // Alle Zeilen
          for (int k = 0; k < width ; k++) {    // Alle Spalten
            if(k<radius||k>width-radius){      //Randbehandlung
               cj->Data[i][j*width+k]=Data[i][j*width+k];
            }
           else{
 
          pixel = 0;
          for(int l=k-radius; l<= k+radius; l++){  //Spalten
            pixel+= ci->Data[i][j*width+l];
          }
         cj->Data[i][j*width+k]=(double) pixel /Maske + 0.5;
      }
   }
  }
}
  delete ci;
  return cj;
 
 }


Hier mein Problem: Wenn ich den Filter ausführe, ist mein Bild um 90° gedreht, und ich habe echt überhaupt keine Ahnung, warum!!!

Wäre nett, wenn mir einer helfen könnte...

Gruß Aeris
knivil
Mitglied

Benutzerprofil
Anmeldungsdatum: 11.02.2009
Beiträge: 7325
Beitrag knivil Mitglied 16:27:22 30.01.2010   Titel:              Zitieren

Zitat:
schneller als

Also die Performancediskussion ... MMX und SSEx sind wie geschaffen fuer diese Operationen. Auch kann man es direkt auf seiner Grafikkarte ueber Shader realisieren.

Zum geposteten Code: Ich persoenlich finde ihn nicht schoen. Was solls ...

_________________
If it were not for laughter, there would be no Tao.
Sie können einen Beitrag nicht so schnell nach Ihrem letzten absenden, bitte warten Sie einen Augenblick.
morganlefay
Unregistrierter




Beitrag morganlefay Unregistrierter 19:13:15 30.01.2010   Titel:              Zitieren

Was soll ich machen? Ist ein programmierprojekt und das muss halt drin sein...
Achromat
Mitglied

Benutzerprofil
Anmeldungsdatum: 05.06.2013
Beiträge: 292
Beitrag Achromat Mitglied 19:09:08 19.06.2013   Titel:   Praktischer Einsatz            Zitieren

Sehr schöner Forumsteil

Hier gibt es auch noch Beiträge zum Thema:

http://www.flexxvision.de/forum.html


Zuletzt bearbeitet von Achromat am 18:16:43 11.03.2014, insgesamt 3-mal bearbeitet
ethio
Unregistrierter




Beitrag ethio Unregistrierter 17:05:35 23.03.2018   Titel:   Link zur Beispielprojekt            Zitieren

Hallloooo,

zumächst würde ich gerne sagen wie toll dieser Beitrag zur Bildverarbeitung ist !!!
Dann wollte ich mir gerne deine (Korbinian) Beispielprojekt runterladen aber dieser Link(http://www.korbinian-riedhammer.de/misc/ip-suite.tar.bz2 ) funktioniert nicht. Naja ist ja ziemlich langer Zeit vergangen inzwischen. Ich hoffe jedoch das es sich denn noch wiederherstellen lässt bwz. du es noch mal online stellen kannst.


Vielen Dank für deine Zeit und Mühe. :)
C++ Forum :: Die Artikel ::  Grundlegende Algorithmen in der Bildverarbeitung  
Gehen Sie zu Seite Zurück  1, 2, 3, 4, 5, 6
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.net ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.