Uusi historia

Tämä web-sovellus muuttaa minkä tahansa kuvan retro-kuumeeksi - ei tarvita Photoshopia

kirjoittaja Nailya Safarova7m2025/04/23
Read on Terminal Reader

Liian pitkä; Lukea

Tutustu kehittyneisiin kuvankäsittelymenetelmiin väripalettien, HSV-mallin, kontrastin ja melun säätöjen avulla parantamaan luovaa hallintaa valokuvien manipuloinnissa.
featured image - Tämä web-sovellus muuttaa minkä tahansa kuvan retro-kuumeeksi - ei tarvita Photoshopia
Nailya Safarova HackerNoon profile picture


MeidänEdellinen Tutorial, opimme sovelluksemme työskentelemään viittausten ja palettien kanssa. Nyt on aika lisätä lisää vaihtoehtoja hienosäätöväreille ja visuaalisille tehosteille.


Esittelemme muutamia uusia työkaluja, jotka mahdollistavat joustavamman kuvankäsittelyn. Lisäksi tutkimme uutta värimallia, HSV:tä, joka toimii värillä eri tavalla kuin RGB ja LAB. Tämä malli helpottaa ominaisuuksien, kuten sävyn, kylläisyyden ja keveyden, manipulointia, mikä tekee siitä erityisen hyödyllisen värin säätämisessä kuvissa.


Koko hankkeen koodi on saatavilla osoitteessaTämä linkkija

Tämä linkki

Adjusting the Number of Colors in the Extracted Palette

Olemme jo nähneet, miten paletin rajoittaminen voi muuttaa kuvan ulkonäköä.


Joustavampia suodattimia ja kuvankäsittelyn säätöjä varten lisäämme mahdollisuuden hallita kuvasta poistettujen värien määrää.Nyt voit asettaa tarkasti, kuinka monta väriä on korostettu kuvassa, mikä mahdollistaa paremman hallinnan visuaalisista tehosteista.Tämä ominaisuus on erityisen hyödyllinen, kun työskentelet palettien kanssa suodattimien luomiseksi, koska värien määrän muuttaminen koskee monenlaisia suunnittelutoimintoja.


Sovelluksessa on nyt liukusäädin, jonka avulla voit valita kuvan poistamien värien määrän (10-20). Tämä säätö vaikuttaa suodattimen tuloksiin ja auttaa saavuttamaan parempia visuaalisia tehosteita.


<div style={{ marginBottom: 12 }}>
  <label>Number of Colors</label>
  <input
    type="range"
    min="10"
    max="20"
    value={colorCount}
    onChange={(e) => setColorCount(Number(e.target.value))}
    style={{ width: "100%" }}
  />
</div>


Tulemme kokeilemaan hämmästyttävää valokuvaa, jonka on tehnyt So SasakiLähde TokioSiinä on laaja valikoima värejä ja sävyjä, mikä tekee siitä täydellisen kohteen tutkimuksellemme.


So Sasaki | Void Tokyo


Alla voit verrata, miltä kuva näyttää eri kokoisten palettien kanssa.


The more colors there are in the palette, the more details can be distinguished in the photo

Filter Intensity Slider

Jotta suodatusprosessi olisi joustavampi, lisäämme liukusäätimen hallitsemaan paletti-sovelluksen voimakkuutta kuvaan.


Valitse vain haluttu suodattimen voimakkuus ja napsauta ”Käytä suodatinta”.


<div style={{ marginBottom: 16 }}>
  <label style={{ display: "block", marginBottom: 6 }}>Filter Intensity</label>
  <input
    type="range"
    min="0"
    max="100"
    value={intensity}
    onChange={(e) => setIntensity(Number(e.target.value))}
    style={{ width: "100%" }}
  />
</div>


As the filter intensity increases, the image becomes more transformed

How does it work?

Kun voimakkuus on asetettu 100 prosenttiin, kuva muuttuu täysin käyttämällä valitun paletin värejä. Mitä pienempi voimakkuusarvo on, sitä pienempi vaikutus paletilla on kuvaan, jolloin voit säilyttää enemmän alkuperäisiä värejä.

HSV Color Model

HSV (Hue, Saturation, Value) on yksi suosituimmista värimalleista, jota käytetään usein värin, kylläisyyden ja kirkkauden osalta.

    on
  • Väri: Tämä edustaa ensisijaista väriä (kuten punaista, vihreää, sinistä jne.), mitattuna asteina 0–360.
  • on
  • Saatavuus: Tämä osoittaa värin voimakkuuden. Saatavuus vaikuttaa värin harmaan määrään: 100% on täysin kyllästynyt väri ja 0% on harmaa.
  • on
  • Arvo (kirkkuus): Tämä osoittaa, kuinka kirkasta väri on. Arvo 0% antaa mustan, kun taas 100% on värin kirkkain versio.
  • on


Differences from RGB and LAB• :

    on
  • Toisin kuin RGB, jossa värit yhdistyvät punaisen, vihreän ja sinisen voimakkuuden perusteella, HSV perustuu ihmisen visuaaliseen havaintoon.
  • on
  • Verrattuna LAB:hen, joka käyttää monimutkaisempaa matemaattista mallia tarkkojen värien esittämiseen eri valaistusolosuhteissa, HSV on intuitiivisempi ja käyttäjäystävällisempi.
  • on

Esimerkki koodista RGB: n muuntamiseen HSV:

function rgbToHsv(r, g, b) {
  r /= 255;
  g /= 255;
  b /= 255;
  
  const max = Math.max(r, g, b);
  const min = Math.min(r, g, b);
  const delta = max - min;

  let h = 0, s = 0, v = max;

  if (delta !== 0) {
    s = delta / max;
    if (r === max) {
      h = (g - b) / delta;
    } else if (g === max) {
      h = 2 + (b - r) / delta;
    } else {
      h = 4 + (r - g) / delta;
    }
    h *= 60;
    if (h < 0) h += 360;
  }

  return [h, s * 100, v * 100];
}

Alla on esimerkkejä kuvista samassa paletissa, mutta eri väri malleissa.


In different color models, the same object can appear differently

Contrast Slider

Kontrasti tarkoittaa kuvan valoisimpien ja pimeimpien pisteiden välistä eroa. Kontrastin säätäminen mahdollistaa tämän eron lisäämisen tai pienentämisen.


How does contrast adjustment work?

Kun kontrastia lisätään, kuvan tummat alueet muuttuvat entistä tummemmaksi ja valoisat alueet entistä kirkkaammiksi.Tämä vaikutus voi tehdä kuvan näkyvän kirkkaammaksi ja terävämmäksi, mikä lisää sen visuaalista vaikutusta.


Esimerkki koodista kontrastin muuttamiseksi:


const applyContrast = (r, g, b, contrast) => {
  const contrastFactor = (259 * (contrast + 255)) / (255 * (259 - contrast));
  r = contrastFactor * (r - 128) + 128;
  g = contrastFactor * (g - 128) + 128;
  b = contrastFactor * (b - 128) + 128;
  return [r, g, b];
};


Contrast gradually enhances the colors in the image

Algorithm Description• :

Kontrastialgoritmi käyttää tekijää, joka riippuu nykyisestä kontrastin arvosta.Tätä tekijää sovelletaan jokaiseen värikomponenttiin (punainen, vihreä ja sininen), säätämällä niiden kirkkautta kontrastin tason perusteella.

Noise Slider

Niille, jotka haluavat pitää hauskaa, olemme lisänneet melun liukusäätimen. Melun lisääminen kuvaan auttaa luomaan vintage-valokuvaefektiä tai tekemään kuvan tuntumaan "elävämmältä".Tätä vaikutusta käytetään piilottamaan epätäydellisyyksiä tai lisäämään taiteellista kosketusta kuvaan.


How does the noise work?

Melu liukusäätimellä voit hallita kuvassa olevan jokaisen pikselin väriin sovellettavien satunnaisten muutosten määrää.Mitä korkeampi melu-arvo on, sitä suurempi on kuvan satunnaisten muutosten määrä.


Kun kuviin lisätään melua, kunkin pikselin RGB-arvoihin lisätään pieniä, satunnaisia vaihteluita, mikä johtaa viljan vaikutukseen.Tämä vaikutus voi olla hienovarainen tai voimakas riippuen käytetyn melun määrästä.Tämä voi auttaa antamaan kuvalle teksturoidumman ilmeen tai simuloimaan vanhan, matalan resoluution valokuvan ulkonäköä.


const applyNoise = (r, g, b, noise) => {
  r += Math.random() * noise - noise / 2;
  g += Math.random() * noise - noise / 2;
  b += Math.random() * noise - noise / 2;
  return [r, g, b];
};


A high level of noise, similar to that in early digital cameras

Algorithm Description• :

Jokaiseen pikseliin lisätään satunnaisarvo määritetyn alueen sisällä. Tämä luo satunnaisten värimuutosten vaikutuksen, mikä antaa kuvalle meluisan tai viljeltävän ulkonäön. Meidän tapauksessamme simuloimme yksinkertaisesti vääristymiä, joilla ei ole mitään tekemistä todellisen elokuvan viljan tai melun kanssa.Näytönohjain: Sony Ericsson W810) toimivat samalla periaatteella.


Hallitsemalla melun määrää käyttäjät voivat kokeilla eri intensiteettiä erilaisten luovien vaikutusten saavuttamiseksi tai kuvata valokuvan epätäydellisyyksiä.


Ja tietenkin olemme lisänneet Reset Settings -painikkeen, joka poistaa kaikki suodattimet ja palaa alkuperäiseen kuvaan.


Full view of our application interface


Olemme tutkineet, miten väripaletteja voidaan poimia ja säätää, kontrastin, kyllästymisen ja melun vaikutuksia sekä miten voidaan työskennellä eri värimalleilla – RGB, LAB ja HSV.


Värikorjaus on ratkaiseva osa kuvankäsittelyä, jonka avulla voimme parantaa visuaalista havaintoa, korostaa tiettyjä elementtejä ja saavuttaa harmoniaa värien välillä.Olemme osoittaneet, miten värien määrän säätäminen paletissa tai kontrastiasetusten muuttaminen voi täysin muuttaa kuvan, mikä tekee siitä ilmeisemmän ja dynaamisemman.


On tärkeää huomata, että värin ja kontrastin säätö ei vaikuta vain kuvan ulkonäköön vaan myös siihen, miten se havaitaan.

Trending Topics

blockchaincryptocurrencyhackernoon-top-storyprogrammingsoftware-developmenttechnologystartuphackernoon-booksBitcoinbooks