Difference between revisions of "OpenCV4"
(115 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | == | + | === Overview === |
− | + | This is a tutorial on how to install OpenCV4 and use camera module. | |
− | |||
+ | === Materials/Prerequisites === | ||
+ | *Raspberry Pi | ||
− | + | *Raspberry Pi Camera | |
− | == | + | === Process === |
− | + | ==== Install OpenCV==== | |
+ | Follow these [https://www.pyimagesearch.com/2018/09/26/install-opencv-4-on-your-raspberry-pi/ instruction]<ref>Open CV instruction:[https://www.pyimagesearch.com/2018/09/26/install-opencv-4-on-your-raspberry-pi/ Link]</ref> to install OpenCV onto your Raspberry Pi using the terminal. | ||
− | + | *'''Important note''': Don't do <code>make-j4</code> since the raspberry pi may freeze so it best to just do <code>make</code> or <code>make-j1</code>. | |
− | |||
− | == | + | |
− | + | After you have successfully installed OpenCV, you will be able to use <code>import cv2</code>. If you do it on the terminal, you want to put in these code <code>source ~/.profile</code> and then <code>workon cv</code>. | |
+ | |||
+ | ==== Capturing image==== | ||
+ | [[File:cam.PNG|400px|thumb|left|Taking picture code]] | ||
+ | Following these step to [https://www.dexterindustries.com/howto/installing-the-raspberry-pi-camera/ set up your camera]<ref>Setting up camera:[https://www.dexterindustries.com/howto/installing-the-raspberry-pi-camera/ Link]</ref> | ||
+ | |||
+ | Note: Ignoring GoPiGo installation. | ||
+ | |||
+ | |||
+ | Once the camera is set up, it is ready to take pictures. In order to capture image, follow these [https://medium.com/@petehouston/capture-images-from-raspberry-pi-camera-module-using-picamera-505e9788d609 instruction] <ref>Capturing Image:[https://medium.com/@petehouston/capture-images-from-raspberry-pi-camera-module-using-picamera-505e9788d609 Link]</ref> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Note: | ||
+ | |||
+ | **Use <code>sleep</code> (measured in seconds) to create a delay between the preview: <code>time.sleep(seconds)</code> | ||
+ | |||
+ | **Another way to enable your camera is: go to the terminal → type in <code>sudo raspi-config</code> → select <code>Enable Camera</code> → press Enter → select <code>Finish</code> → reboot and log back on to the Raspberry Pi. | ||
+ | |||
+ | ==== Edge Detector==== | ||
+ | [[File:Edges.PNG|350px|thumb|right|Sample Edge Detector]] | ||
+ | Once you have a picture, you may want to use edge detection to detect the chessboard region of interest. | ||
+ | |||
+ | Follow these instruction for [https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_canny/py_canny.html Canny edge detection]<ref>Canny edge detection:[https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_canny/py_canny.html Link]</ref> | ||
+ | |||
+ | * Note: Scroll down to the Explanation section. | ||
+ | |||
+ | Follow this [https://docs.opencv.org/3.4.0/dd/d1a/group__imgproc__feature.html#ga04723e007ed888ddf11d9ba04e2232de/ Link]<ref name="a">Parameter:[https://docs.opencv.org/3.4.0/dd/d1a/group__imgproc__feature.html#ga04723e007ed888ddf11d9ba04e2232de/ Link]</ref>if you want to see its parameters.(search for Canny Edge) | ||
+ | |||
+ | In order to use build-in function in Open CV: remember to <code>import</code> cv2. In the instruction, the <code>import</code> cv2 <code>as</code>cv means that you can now type in cv instead of cv2 when using build-in function. | ||
+ | |||
+ | |||
+ | |||
+ | Ex: | ||
+ | To load image: | ||
+ | *src = <code>cv.imread</code>(filename, cv.IMREAD_GRAYSCALE) | ||
+ | |||
+ | Then use: | ||
+ | *dst = <code>cv.Canny</code>(src, 50, 200, None, 3) | ||
+ | |||
+ | ==== Houghline Transformation==== | ||
+ | [[File:lines.PNG|550px|thumb|left|Sample Houghline Transformation]] | ||
+ | Using the Canny Edge detection to find the region of interest(edges of the image) prior to the Houghline Transformation,one can now ready to use the Hougline Tranformation. | ||
+ | |||
+ | |||
+ | The process should be: capturing an image→Canny Edge Detection→Houghline Transformation. | ||
+ | |||
+ | |||
+ | Follow the following instruction for [https://docs.opencv.org/3.4.0/d9/db0/tutorial_hough_lines.html Houghline Transformation].<ref>Houghline Transformation:[https://docs.opencv.org/3.4.0/d9/db0/tutorial_hough_lines.html Link]</ref> | ||
+ | |||
+ | Follow this [https://docs.opencv.org/3.4.0/dd/d1a/group__imgproc__feature.html#ga04723e007ed888ddf11d9ba04e2232de/ Link]<ref name="a" />if you want to see its parameters.(search for Hough Line) | ||
+ | |||
+ | |||
+ | Example: | ||
+ | |||
+ | <code>lines = cv.HoughLines(dst, 1, np.pi / 180, 150, None, 0, 0)</code> | ||
+ | |||
+ | === Sample Projects === | ||
+ | |||
+ | *ESE205-CVChess/board_Recognition.py <ref> ESE205-CVChess/board_Recognition.py :[https://github.com/rjgoodloe/ESE205-CVChess/blob/master/board_Recognition.py Links]</ref> | ||
+ | |||
+ | *DE3-ROB1-CHESS/perception.mainDetect<ref> DE3-ROB1-CHESS/perception.mainDetect: [https://de3-rob1-chess.readthedocs.io/en/latest/_modules/perception/mainDetect.html#Perception.makeBoard/ Links]</ref> | ||
+ | |||
+ | === Authors === | ||
+ | *Nhut Dang | ||
+ | |||
+ | *Robert Goodloe | ||
+ | |||
+ | *Ethan Shry(TA) | ||
+ | |||
+ | Fall 2018 | ||
+ | |||
+ | === Group Link === | ||
+ | [https://classes.engineering.wustl.edu/ese205/core/index.php?title=CV_Chess Group page] | ||
+ | |||
+ | [https://classes.engineering.wustl.edu/ese205/core/index.php?title=CV_Chess_Logs Group weekly log] | ||
+ | |||
+ | === References === | ||
[[Category:HowTos]] | [[Category:HowTos]] | ||
[[Category:Raspberry_Pi]] | [[Category:Raspberry_Pi]] |
Latest revision as of 18:52, 12 December 2018
Contents
Overview
This is a tutorial on how to install OpenCV4 and use camera module.
Materials/Prerequisites
- Raspberry Pi
- Raspberry Pi Camera
Process
Install OpenCV
Follow these instruction[1] to install OpenCV onto your Raspberry Pi using the terminal.
- Important note: Don't do
make-j4
since the raspberry pi may freeze so it best to just domake
ormake-j1
.
After you have successfully installed OpenCV, you will be able to use import cv2
. If you do it on the terminal, you want to put in these code source ~/.profile
and then workon cv
.
Capturing image
Following these step to set up your camera[2]
Note: Ignoring GoPiGo installation.
Once the camera is set up, it is ready to take pictures. In order to capture image, follow these instruction [3]
Note:
- Use
sleep
(measured in seconds) to create a delay between the preview:time.sleep(seconds)
- Use
- Another way to enable your camera is: go to the terminal → type in
sudo raspi-config
→ selectEnable Camera
→ press Enter → selectFinish
→ reboot and log back on to the Raspberry Pi.
- Another way to enable your camera is: go to the terminal → type in
Edge Detector
Once you have a picture, you may want to use edge detection to detect the chessboard region of interest.
Follow these instruction for Canny edge detection[4]
- Note: Scroll down to the Explanation section.
Follow this Link[5]if you want to see its parameters.(search for Canny Edge)
In order to use build-in function in Open CV: remember to import
cv2. In the instruction, the import
cv2 as
cv means that you can now type in cv instead of cv2 when using build-in function.
Ex: To load image:
- src =
cv.imread
(filename, cv.IMREAD_GRAYSCALE)
Then use:
- dst =
cv.Canny
(src, 50, 200, None, 3)
Houghline Transformation
Using the Canny Edge detection to find the region of interest(edges of the image) prior to the Houghline Transformation,one can now ready to use the Hougline Tranformation.
The process should be: capturing an image→Canny Edge Detection→Houghline Transformation.
Follow the following instruction for Houghline Transformation.[6]
Follow this Link[5]if you want to see its parameters.(search for Hough Line)
Example:
lines = cv.HoughLines(dst, 1, np.pi / 180, 150, None, 0, 0)
Sample Projects
- ESE205-CVChess/board_Recognition.py [7]
- DE3-ROB1-CHESS/perception.mainDetect[8]
Authors
- Nhut Dang
- Robert Goodloe
- Ethan Shry(TA)
Fall 2018