Skip to contents

Provides useful conversions between size (cm), number of pixels (px) and dots per inch (dpi).

  • dpi_to_cm() converts a known dpi value to centimeters.

  • cm_to_dpi() converts a known centimeter values to dpi.

  • pixels_to_cm() converts the number of pixels to centimeters, given a known resolution (dpi).

  • cm_to_pixels() converts a distance (cm) to number of pixels, given a known resolution (dpi).

  • distance() Computes the distance between two points in an image based on the Pythagorean theorem.

  • dpi() An interactive function to compute the image resolution given a known distance informed by the user. See more information in the Details section.

  • npixels() returns the number of pixels of an image.




pixels_to_cm(px, dpi)

cm_to_pixels(cm, dpi)


dpi(img, viewer = get_pliman_viewer())

distance(img, viewer = get_pliman_viewer())



The image resolution in dots per inch.


The size in centimeters.


The number of pixels.


An image object.


The viewer option. If not provided, the value is retrieved using get_pliman_viewer(). This option controls the type of viewer to use for interactive plotting. The available options are "base" and "mapview". If set to "base", the base R graphics system is used for interactive plotting. If set to "mapview", the mapview package is used. To set this argument globally for all functions in the package, you can use the set_pliman_viewer() function. For example, you can run set_pliman_viewer("mapview") to set the viewer option to "mapview" for all functions.


  • dpi_to_cm(), cm_to_dpi(), pixels_to_cm(), and cm_to_pixels() return a numeric value or a vector of numeric values if the input data is a vector.

  • dpi() returns the computed dpi (dots per inch) given the known distance informed in the plot.


dpi() only run in an interactive section. To compute the image resolution (dpi) the user must use the left button mouse to create a line of known distance. This can be done, for example, using a template with known distance in the image (e.g., la_leaves.jpg).


Tiago Olivoto


# Convert  dots per inch to centimeter
dpi_to_cm(c(1, 2, 3))
#> [1] 2.5400000 1.2700000 0.8466667

# Convert centimeters to dots per inch
cm_to_dpi(c(1, 2, 3))
#> [1] 0.3937008 0.7874016 1.1811024

# Convert centimeters to number of pixels with resolution of 96 dpi.
cm_to_pixels(c(1, 2, 3), 96)
#> [1]  37.79528  75.59055 113.38583

# Convert number of pixels to cm with resolution of 96 dpi.
pixels_to_cm(c(1, 2, 3), 96)
#> [1] 0.02645833 0.05291667 0.07937500

#### compute the dpi (dots per inch) resolution ####
# only works in an interactive section
# objects_300dpi.jpg has a known resolution of 300 dpi
img <- image_pliman("objects_300dpi.jpg")
# Higher square: 10 x 10 cm
# 1) Run the function dpi()
# 2) Use the left mouse button to create a line in the higher square
# 3) Declare a known distance (10 cm)
# 4) See the computed dpi

img2 <- image_pliman("la_leaves.jpg")
# square leaf sample (2 x 2 cm)