{ "cells": [ { "cell_type": "markdown", "id": "5fbc4950", "metadata": {}, "source": [ "\n", "*This notebook contains material from [cbe61622](https://jckantor.github.io/cbe61622);\n", "content is available [on Github](https://github.com/jckantor/cbe61622.git).*\n" ] }, { "cell_type": "markdown", "id": "969d2974", "metadata": {}, "source": [ "\n", "< [10.0 Computer Vision](https://jckantor.github.io/cbe61622/10.00-Computer-Vision.html) | [Contents](toc.html) | [10.2 Machine Vision Applications](https://jckantor.github.io/cbe61622/10.02-Machine-Vision.html) >

\"Open

\"Download\"" ] }, { "cell_type": "markdown", "id": "174eb6d5-440f-4d94-9e9a-91c3ac45ac1b", "metadata": { "nbpages": { "level": 1, "link": "[10.1 Image Capture](https://jckantor.github.io/cbe61622/10.01-rpi-image-capture.html#10.1-Image-Capture)", "section": "10.1 Image Capture" } }, "source": [ "# 10.1 Image Capture\n", "\n", "> Great minds discuss ideas; average minds discuss events; small minds discuss people.\n", ">\n", "> *Eleanor Roosevelt*\n", "\n", "Let's get the ideas in order before discussing equipment and processes.\n", "\n", "![](https://i.pinimg.com/originals/ef/57/92/ef579242f3a4c24fe01d543f04a656b7.jpg)" ] }, { "cell_type": "markdown", "id": "33e1545f-453d-4279-87d8-3aacc360a47a", "metadata": { "nbpages": { "level": 2, "link": "[10.1.1 References](https://jckantor.github.io/cbe61622/10.01-rpi-image-capture.html#10.1.1-References)", "section": "10.1.1 References" } }, "source": [ "## 10.1.1 References\n", "\n", "Main Reference\n", "\n", "* Miikki, K; Karakoc, A. et al. An open-source camera system for experimental measurements, SoftwareX, 2021, 14, 100688 (freely accessible @ https://www.sciencedirect.com/science/article/pii/S2352711021000339#appA) \"DOI\" Also see [rpi-camera github repository](https://github.com/kmiikki/rpi-camera).\n", "\n", "Secondary References\n", "\n", "* Wilkes, Thomas C., et al. \"Ultraviolet imaging with low cost smartphone sensors: Development and application of a raspberry Pi-based UV camera.\" Sensors 16.10 (2016): 1649. (https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5087437/) [pdf](https://core.ac.uk/download/pdf/46565912.pdf)\n", "\n", "* Deep Ultraviolet Imaging Using the Raspberry Pi HQ Camera [Steropi Blog](https://stereopi.com/blog/deep-ultraviolet-imaging-using-raspberry-pi-hq-camera)\n", "\n", "* Raspberry Pi Documentation: Camera (https://www.raspberrypi.com/documentation/accessories/camera.html)\n", "\n", "* [Giving Linux a Camera Stack: libcamera's 3 Years Journey and Exciting Future](https://youtu.be/r8ByyJzSKG8) (YouTube video)\n" ] }, { "cell_type": "markdown", "id": "95debf1e-ab70-48b6-8931-372d732b03e1", "metadata": { "nbpages": { "level": 2, "link": "[10.1.2 Light](https://jckantor.github.io/cbe61622/10.01-rpi-image-capture.html#10.1.2-Light)", "section": "10.1.2 Light" } }, "source": [ "## 10.1.2 Light\n", "\n", "Radiometry vs Photometry\n", "\n", "* **Radiometry**: Measuring light in any portion of the electromagnetic spectrum, typically infrared, visible, ultraviolet\n", "* **Photometry**: Measuring light in units weighted by sensitivity of the human eye.\n", "\n", "SI Units for Photometry\n", "\n", "* Candela (cd): SI unit of luminous intensity\n", "* Luminous power per unit solid angle emitted by a point light source. 1 cd = 1 lumen/SR\n", "* 1 candela is approximately equal to light emitted by a common wax candle\n", "* Luminous intensity is weighted to match human perception.\n", "\n", "More on Lumens, Lux, and Nits: https://www.konicaminolta.com/instruments/knowledge/light/concepts/04.html\n" ] }, { "cell_type": "markdown", "id": "4a9cd6df-8bc4-454b-9cd9-69f6192e68fc", "metadata": { "nbpages": { "level": 2, "link": "[10.1.3 Perception](https://jckantor.github.io/cbe61622/10.01-rpi-image-capture.html#10.1.3-Perception)", "section": "10.1.3 Perception" } }, "source": [ "## 10.1.3 Perception\n", "\n", "https://www.olympus-lifescience.com/en/microscope-resource/primer/lightandcolor/humanvisionintro/\n", "\n", "![](http://hci.cs.siue.edu/NSF/Files/Semester/Week9-2/PPT-Text/images/Image13.png)\n", " \n", "![](https://upload.wikimedia.org/wikipedia/commons/thumb/7/72/CIE_1931_Luminosity.png/640px-CIE_1931_Luminosity.png)\n", "\n", "* Human Perception\n", "\n", "https://www.olympus-lifescience.com/en/microscope-resource/primer/lightandcolor/humanvisionintro/\n", "\n", "![](https://static3.olympus-lifescience.com/data/olympusmicro/primer/lightandcolor/images/humanvisionfigure6.jpg?rev=63C6)\n", "\n", "![](https://www.ecse.rpi.edu/~schubert/Light-Emitting-Diodes-dot-org/chap16/F16-02%20Photopic%20mesopic%20scotopic%20vision.jpg)\n", "\n", "\n", "\n", " \n", "* Representing images\n", " * Gamma\n", " * RGB, CYMK, YUV, etc\n", " * Color spaces\n", " * Color management and calibration\n", " * Gamma\n", " * Histograms\n", " " ] }, { "cell_type": "markdown", "id": "24460870-7e65-45c5-bcbf-11b0fbf9c62b", "metadata": { "nbpages": { "level": 3, "link": "[10.1.3.1 Color Gamut](https://jckantor.github.io/cbe61622/10.01-rpi-image-capture.html#10.1.3.1-Color-Gamut)", "section": "10.1.3.1 Color Gamut" } }, "source": [ "### 10.1.3.1 Color Gamut\n", "\n", "![](https://upload.wikimedia.org/wikipedia/commons/thumb/6/60/Cie_Chart_with_sRGB_gamut_by_spigget.png/430px-Cie_Chart_with_sRGB_gamut_by_spigget.png)" ] }, { "cell_type": "markdown", "id": "d6a949cb-6ce2-4490-8b9e-dbffe5db404e", "metadata": { "nbpages": { "level": 3, "link": "[10.1.3.2 Lens and Aperture](https://jckantor.github.io/cbe61622/10.01-rpi-image-capture.html#10.1.3.2-Lens-and-Aperture)", "section": "10.1.3.2 Lens and Aperture" } }, "source": [ "### 10.1.3.2 Lens and Aperture\n", "\n", "#### Etendue\n", "* Property of light in an optical system\n", "* Area of the entrance pupil times solid angle the source subtends viewed from the pupil\n", "* Etendue is like entropy, always increases in an optical system\n", "\n", "#### Simple Lenses\n", "https://en.wikipedia.org/wiki/Lens\n", "\n", "* Simple lenses\n", "* Focal length, refraction, and the Lensmaker's equation\n", "* Real and Virtual image\n", "* Magnification\n", "* Abberations\n", " \n", "#### Complex lenses\n", " \n", "* microscopes (https://www.ccmr.cornell.edu/wp-content/uploads/sites/2/2018/03/Reading_-How-do-the-lenses-in-a-microscope-work_.pdf) \n", " ![](https://image1.slideserve.com/2952580/slide8-l.jpg)\n", "* 4f systems and fourier optics\n", "* telecentric lenses\n", "* epi-lighting schemes" ] }, { "cell_type": "markdown", "id": "aee1f52f-6d46-433e-8800-ce8e72e1fa11", "metadata": { "nbpages": { "level": 3, "link": "[10.1.3.3 Sensor](https://jckantor.github.io/cbe61622/10.01-rpi-image-capture.html#10.1.3.3-Sensor)", "section": "10.1.3.3 Sensor" } }, "source": [ "### 10.1.3.3 Sensor\n", "\n", "![](https://static.techspot.com/articles-info/850/images/CMOS-j_1100.webp)\n", "\n", "IR/UV/Anti-Aliasing/Microlens/Color Filter Array\n", "\n", "![](https://www.arducam.com/wp-content/uploads/2020/11/sony-image-sensor-back-illuminated-and-front-illuminated-22.jpg)\n", "\n", "![](https://static.techspot.com/articles-info/850/images/Module-GS5-S-j_1100.webp)\n", "\n", "* Sensor 2. Electronics\n", " * [OV5642 Data Sheet](https://www.uctronics.com/download/cam_module/OV5642DS.pdf)\n", " ![](https://www.arducam.com/wp-content/uploads/2019/04/ov5642_diagram.jpg)\n", " * [IMX477 Data Sheet](https://www.arducam.com/sony/imx477/)\n", " ![](https://www.arducam.com/wp-content/uploads/2020/11/BLOCK-DIAGRAM-1024x564.png)\n" ] }, { "cell_type": "markdown", "id": "203e90b7-e4a2-4f2e-8aa3-390e6b5df23e", "metadata": { "nbpages": { "level": 3, "link": "[10.1.3.4 Camera as a System](https://jckantor.github.io/cbe61622/10.01-rpi-image-capture.html#10.1.3.4-Camera-as-a-System)", "section": "10.1.3.4 Camera as a System" } }, "source": [ "### 10.1.3.4 Camera as a System\n", "\n", "* Feedback\n", " * Exposure control\n", " * Automatic white balance\n", " * Autofocus\n", " \n", "* Equivalence\n", "\n", "![](https://www.raspberrypi.com/app/uploads/2020/05/Libcamera-Diagrams-01-500x334.jpg)\n", "\n", "![](https://www.raspberrypi.com/app/uploads/2020/05/Libcamera-Diagrams-02-500x334.jpg)" ] }, { "cell_type": "markdown", "id": "a4aa3a43-b387-4e1c-85cf-bdedc3634c64", "metadata": { "nbpages": { "level": 2, "link": "[10.1.4 Software Tools](https://jckantor.github.io/cbe61622/10.01-rpi-image-capture.html#10.1.4-Software-Tools)", "section": "10.1.4 Software Tools" } }, "source": [ "## 10.1.4 Software Tools\n", "\n", "* libcamera + qcam\n", "* OpenCV\n", "* RawTherapee ``sudo apt-get install rawtherapee``\n", "* imageio\n", "* ImageJ" ] }, { "cell_type": "code", "execution_count": null, "id": "5be3b06d-e42a-4a10-91e3-7dc93b623205", "metadata": { "nbpages": { "level": 2, "link": "[10.1.4 Software Tools](https://jckantor.github.io/cbe61622/10.01-rpi-image-capture.html#10.1.4-Software-Tools)", "section": "10.1.4 Software Tools" } }, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "f6300de8", "metadata": {}, "source": [ "\n", "< [10.0 Computer Vision](https://jckantor.github.io/cbe61622/10.00-Computer-Vision.html) | [Contents](toc.html) | [10.2 Machine Vision Applications](https://jckantor.github.io/cbe61622/10.02-Machine-Vision.html) >

\"Open

\"Download\"" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.12" } }, "nbformat": 4, "nbformat_minor": 5 }