float werte auf char bereich umrechnen



  • ich will float werte auf den char bereich spreizen. dh ich berechne mir minimum und maximum der float werte und will sie jetzt auf das interval eines char im verhältnis der alten werte aufteilen.

    kann dieser code hier ungewünschte nebeneffekte haben? max und min passen auf jeden fall, die sind überprüft.
    kann es ein, dass ein wert erzeugt wird der größer oder kleiner dem interval von char ist? bin mir nicht ganz sicher.

    float maxmin = max - min;
    	int cRange = (CHAR_MAX - CHAR_MIN);
    
    	for(int x = 0; x < sizeX; ++x)
    	{
    		char c = static_cast<char>((val[x] - min)/maxmin * cRange + CHAR_MIN);
    	}
    

    jperl



  • Mich würde interessieren ob da am Ende was sinnvolles rauskommen soll und wenn ja, was!



  • David_pb schrieb:

    Mich würde interessieren ob da am Ende was sinnvolles rauskommen soll und wenn ja, was!

    naja das ist eine simple abbildung. die werte werden ihrem verhältnis des alten bereichs auf den neuen umgerechnet.

    jperl


  • Mod

    Dein Code scheint mir auf korrekte Weise das von dir beschriebene zu leisten.



  • @David_pb
    kann man zum beispiel einsetzen um bei einem grauwertbild den kontrast zu verbessern, wenn die werte in einem sehr engen bereich liegen.
    oder wenn man werte aus einem filter erhält, die aus einem gewissen wertebereich fallen.

    jperl





  • David_pb schrieb:

    hm sry, wohl den relevanten code fast ein wenig zu viel gekürzt.

    jperl



  • jperl schrieb:

    hm sry, wohl den relevanten code fast ein wenig zu viel gekürzt.

    Richtig. Er compiliert nicht -> zu weit gekürzt 😉


Log in to reply