How do you change to CM in Photoshop?

Pixel til Millimeter: Nøjagtig Konvertering

I verdenen af industriel automatisering og robotteknologi er det ofte nødvendigt at 'se' med kameraer og derefter interagere med den fysiske verden baseret på, hvad kameraet ser. Dette indebærer en kritisk proces: at omsætte information fra billedets pixelkoordinater til reelle, målbare enheder som millimeter. En simpel skalering, som f.eks. at dividere billedets bredde i pixels med den fysiske bredde i millimeter, lyder logisk, men som mange finder ud af, er den sjældent tilstrækkeligt nøjagtig til præcise opgaver. En afvigelse på 15 mm, som du oplever, er et klassisk tegn på, at en dybere forståelse af billedkalibrering er nødvendig.

Indholds

Hvorfor Simpel Skalering Ikke Er Nøjagtig Nok

Din nuværende metode, hvor du beregner skaleringsfaktorer som image.Width / 250 og image.Height / 150, bygger på en antagelse, der sjældent holder i praksis: at billedet perfekt og uden forvrængning repræsenterer præcis de 250 mm gange 150 mm af papiret, og at billedets pixelmål (image.Width, image.Height) direkte korrelerer med disse fysiske mål med en ensartet, simpel skala.

How to measure cm in Photoshop?
The Photoshop ruler displays pixels by default, but you can change the unit of measurement as desired by right-clicking on the ruler. A drop-down menu will appear with a selection of choices, including inches, points, millimeters, centimeters, pica and percent.19. mar. 2018

Problemet er flerfoldigt:

  • Perspektivforvrængning: Hvis kameraet ikke er placeret perfekt vinkelret på papiret og direkte over midten, vil forskellige dele af papiret optræde med forskellig skala i billedet. Punkter tættere på kameraet synes større (fylder flere pixels), mens punkter længere væk synes mindre.
  • Linseforvrængning: De fleste kameralinser, især billigere typer, introducerer forvrængning (f.eks. tøndeforvrængning eller pudeforvrængning), der bøjer lige linjer i virkeligheden til kurver i billedet, især mod kanterne.
  • Ukendt Billedfangstområde: Billedet du tager, viser måske ikke præcis de 250x150 mm af papiret, men et større eller mindre område, hvor papiret er placeret indenfor. Din beregning antager, at image.Width *er* 250 mm i virkeligheden, hvilket kun er sandt under meget specifikke, kontrollerede forhold.
  • Oprindelsesforskydning: Selv hvis skalaen var korrekt, er billedets (0,0) punkt (typisk øverste venstre hjørne) sjældent det samme som (0,0) punktet i dit ønskede millimetersystem for robotten. En forskydning på 15 mm, som du ser, indikerer netop en sådan oprindelsesforskydning ud over en potentiel skaleringsfejl.

Forståelse af DPI/PPI i Billeder

Du nævner en opløsning på 96 dpi (Dots Per Inch). DPI, eller mere korrekt PPI (Pixels Per Inch) i digitale billeder, er metadata, der angiver, hvor mange pixels billedet er tænkt at fylde per tomme, når det printes eller vises på en skærm med en given pixeltæthed. Standard webgrafik bruger ofte 72 eller 96 dpi, men denne værdi alene fortæller dig *ikke* den fysiske størrelse af noget i billedet, medmindre du kender den fysiske størrelse af den sensor, der tog billedet, og afstanden til objektet – eller hvis du bruger det i forbindelse med kalibrering.

Hvis vi antager, at 96 dpi *perfekt* repræsenterer den virkelige verden ved papirets plan (en stor antagelse!), kan vi beregne en teoretisk pixel-til-mm konvertering:

  • 1 tomme = 25,4 millimeter
  • 96 pixels = 1 tomme
  • Derfor, 96 pixels = 25,4 mm
  • 1 pixel = 25,4 mm / 96 pixels ≈ 0,264583 mm/pixel

Dette teoretiske tal (ca. 0,265 mm/pixel) er en *mulig* skala, men det garanterer ikke nøjagtighed i din specifikke opsætning på grund af de tidligere nævnte forvrængninger og usikkerheder om, præcis hvilket fysisk område billedet dækker. At bruge dette tal som en global skaleringsfaktor for hele billedet vil sandsynligvis stadig resultere i fejl, omend måske mindre end din nuværende metode.

Nøglen til Nøjagtighed: Kalibrering

Den eneste pålidelige måde at konvertere pixelkoordinater fra et kamera til præcise fysiske millimeterkoordinater er gennem kalibrering. Kalibrering er processen, hvor du opdager det matematiske forhold mellem punkter i dit billede (pixels) og de tilsvarende punkter i den virkelige verden (millimeter).

For din opgave med at lokalisere punkter på et fladt stykke papir, der er placeret i robotens arbejdsområde, er en 2D-kalibrering typisk tilstrækkelig. Dette involverer at finde en transformation (en matematisk formel), der kan oversætte pixelkoordinater (x_p, y_p) til millimeterkoordinater (x_m, y_m).

Hvordan Kalibrering Fungerer i Praksis

Den mest almindelige metode til 2D-kalibrering i dette scenarie er at bruge kendte punkter. Du skal bruge mindst to punkter, hvis du kun forventer skalering og forskydning langs akserne, men ideelt set bruger du tre eller flere punkter for at tage højde for potentiel rotation, skævhed og for at forbedre robustheden (f.eks. ved at bruge en affin transformation eller en homografi, hvis perspektivforvrængning er signifikant).

Trinene er typisk:

  1. Forbered Kalibreringsmønster: Placer papiret (eller et kalibreringsmønster med tydeligt markerede punkter med kendte afstande) i robotens arbejdsområde, præcis hvor papiret vil være under normal drift. Sørg for, at det ligger fladt.
  2. Tag Billedet: Tag et billede af papiret/mønsteret med det kamera, du vil bruge.
  3. Identificer Punkter: I billedet identificer du pixelkoordinaterne for mindst tre punkter, hvis virkelige millimeterkoordinater du kender. Disse kunne være hjørnerne af papiret, hvis du er sikker på dets nøjagtige fysiske dimensioner og placering, eller endnu bedre, specifikke mærker på papiret, hvis du har lavet dem med kendte afstande. Lad os sige, du identificerer punkterne P1, P2, P3 i billedet med pixelkoordinater (px1, py1), (px2, py2), (px3, py3).
  4. Kend Virkelige Koordinater: Bestem de tilsvarende millimeterkoordinater for P1, P2, P3 i robotens koordinatsystem. Lad os kalde dem (mx1, my1), (mx2, my2), (mx3, my3). Disse koordinater er relative til et fast referencepunkt i robotens verden.
  5. Beregn Transformationen: Nu har du sæt af korrespondancer: (px, py) -> (mx, my). Med disse punkter kan du beregne den transformation, der bedst oversætter et pixelpunkt til et millimeterpunkt. For en simpel skalering og forskydning (ignorering af rotation/skævhed), leder du efter scaleX, scaleY, offsetX, offsetY, så: mx ≈ px * scaleX + offsetXmy ≈ py * scaleY + offsetY Med to punkter kan du opstille ligninger og løse for de fire ukendte. Med tre eller flere punkter kan du bruge metoder som lineær regression eller en mere generel affin transformation (som håndterer skalering, forskydning, rotation og skævhed) for at finde parametrene, der minimerer fejlen på tværs af alle punkter. Biblioteker til billedbehandling (f.eks. OpenCV) har ofte funktioner til at beregne sådanne transformationer (f.eks. getAffineTransform eller findHomography efterfulgt af warpAffine eller perspectiveTransform, selvom du kun behøver transformationsmatricen for at konvertere punkter).
  6. Anvend Transformationen: Når transformationen (scaleX, scaleY, offsetX, offsetY eller en transformationsmatrix) er beregnet, kan du bruge den til at konvertere *ethvert* pixelpunkt (px, py) fra et billede taget i den samme opsætning til dets tilsvarende millimeterkoordinater (mx, my) for robotten.

Den 15 mm forskydning, du ser, er sandsynligvis en kombination af en forkert offsetX og offsetY samt en potentiel fejl i dine skaleringsfaktorer (scaleX, scaleY), der akkumuleres over afstand. Kalibrering adresserer både skalering og forskydning (og rotation/skævhed, hvis relevant) simultant.

Sammenligning af Metoder

Metode Hvordan det virker Nøjagtighed Kompleksitet Egnet til
Simpel Skalering (image.Width / fysisk bredde) Antager et perfekt, skaleret view af det fysiske objekt, hvor billedets grænser passer præcist til objektets grænser. Lav. Meget følsom over for perspektiv, forvrængning og ukendt billedområde. Fører ofte til betydelige fejl. Lav. Meget simpel beregning. Estimater, hvor høj præcision ikke er nødvendig. Ikke egnet til robotstyring baseret på præcise koordinater.
DPI/PPI Baseret (25.4 / DPI) Bruger billedets metadata til at beregne en potentiel skala. Antager metadata er korrekt og repræsenterer den fysiske skala ved objektets plan. Moderat lav. Kan være tættere end simpel skalering, men lider stadig under de samme forvrængninger og antagelser om billedfangst. Lav. Simpel beregning. Bedre estimater, men stadig usikker til præcise opgaver uden validering/kalibrering.
Kalibrering med Kendte Punkter Bruger sæt af kendte punktkorrespondancer (pixel -> mm) for at beregne en transformationsmodel, der kan inkludere skalering, forskydning, rotation og skævhed. Høj. Kompenserer for perspektiv, linseforvrængning (til en vis grad, afhængig af model) og ukendt oprindelse/skala af billedfangstområdet. Giver den mest præcise konvertering. Moderat til Høj. Kræver opsætning af kalibreringsmønster, punktidentifikation og beregning af transformationen. Essentiel for opgaver, der kræver præcis interaktion med den fysiske verden baseret på billeddata, f.eks. robot pluk-og-placér, inspektion med måling, navigation.

Ofte Stillede Spørgsmål om Pixel til Millimeter Konvertering

Hvordan påvirker kameraets afstand til objektet nøjagtigheden?

Afstanden påvirker skalaen i billedet. Hvis afstanden ændres, ændres antallet af millimeter, som en pixel repræsenterer. Kalibrering er kun gyldig for den afstand og position, den blev udført ved. Hvis papirets position eller kameraets position ændres, skal kalibreringen gentages eller justeres.

Skal jeg bruge en specifik opløsning til kalibrering?

Du bør bruge den samme billedopløsning (f.eks. image.Width og image.Height i pixels) under kalibreringen, som du vil bruge under normal drift. Transformationen er specifikt beregnet for den pixelstørrelse og det synsfelt.

Hvad hvis papiret ikke ligger helt fladt?

Hvis papiret er krøllet eller bøjet, vil 2D-kalibrering ikke være perfekt, da den antager, at alle punkter ligger i et fladt plan. Fejlen vil variere afhængigt af, hvor meget papiret afviger fra planet. For højeste præcision skal objektet være fladt og stabilt.

Kan jeg bruge kalibrering til at korrigere for linseforvrængning?

Ja, mere avancerede kalibreringsmetoder (kamera-kalibrering eller 'camera intrinsic calibration') kan beregne linseforvrængningsparametre. Når disse er kendte, kan du 'af-forvrænge' billedet, før du anvender 2D-transformationen fra pixel til millimeter. Dette giver endnu højere præcision, især i billedets kanter.

Er der softwareværktøjer til at hjælpe med kalibrering?

Ja, mange computer vision-biblioteker (som OpenCV, scikit-image i Python, Vision Toolbox i MATLAB) tilbyder funktioner til både kamera-kalibrering (til linseforvrængning og perspektiv) og beregning af transformationer (affine, homografi) fra sæt af punktkorrespondancer.

Konklusion

At konvertere pixelkoordinater til præcise millimeterkoordinater for robotstyring er en opgave, der kræver mere end simpel skalering baseret på billedets overordnede dimensioner eller DPI-metadata. Den mest pålidelige og nøjagtige metode er kalibrering ved hjælp af kendte referencepunkter. Ved at beregne en transformation baseret på, hvor kendte punkter i den virkelige verden optræder i billedet (i pixels), kan du opnå den præcision, der er nødvendig for din robot til at interagere korrekt med papiret. Din oplevelse med en 15 mm forskydning understreger netop behovet for en kalibreringsproces, der tager højde for både skalering, forskydning og potentielle forvrængninger i din specifikke opsætning.

Hvis du vil læse andre artikler, der ligner Pixel til Millimeter: Nøjagtig Konvertering, kan du besøge kategorien Fotografi.

Avatar photo

Franne Voigt

Mit navn er Franne Voigt, jeg er en 35-årig fotograf fra Danmark med en passion for at fange øjeblikke og dele mine erfaringer gennem min fotoblog. Jeg har arbejdet med både portræt- og naturfotografi i over et årti, og på bloggen giver jeg tips, teknikker og inspiration til både nye og erfarne fotografer. Fotografi er for mig en måde at fortælle historier på – én ramme ad gangen.

Go up