ผลต่างระหว่างรุ่นของ "OpenCV Computer Vision"
จาก Morange Wiki
Patcharapun (คุย | มีส่วนร่วม) (Contents) |
Patcharapun (คุย | มีส่วนร่วม) |
||
(ไม่แสดง 14 รุ่นระหว่างกลางโดยผู้ใช้ 2 คน) | |||
แถว 1: | แถว 1: | ||
+ | <center>[[ไฟล์:Stuff.png|thumb|center|alt=How OpenCV Work on Linux with Python Language.|upright=2.35]]</center> | ||
== OpenCV == | == OpenCV == | ||
==== What IS CV? ==== | ==== What IS CV? ==== | ||
− | * CV ย่อมากจากคำว่า Computer Vision คือ การนำเทคโนโยลีสารสนเทศต่างๆ ทั้ง ภาพ และ วิดีโอ มาประมวลผลโดยนำหลักการทางคณิตศาสตร์เข้ามาช่วยในการพัฒนา | + | * '''CV''' ย่อมากจากคำว่า Computer Vision คือ การนำเทคโนโยลีสารสนเทศต่างๆ ทั้ง ภาพ และ วิดีโอ มาประมวลผลโดยนำหลักการทางคณิตศาสตร์เข้ามาช่วยในการพัฒนา |
− | * OpenCV หรือ Open Source Computer Vision เป็น Library สำหรับเขียนโปรแกรมหรือพัฒนาซอฟต์แวร์ให้สามารถประมวลผลภาพได้ ในทั้งนี้ในด้านธุรกิจและบริการที่จะสามารถมองเห็นภาพให้ชัดเจนได้เลยอาจจะยกตัวอย่างว่า ระบบตรวจจับใบหน้า (Face Detection) และ ในด้านการประมวลผลภาพ (Image Processing) จะสามารถที่จะพัฒนาเป็น ระบบที่นำรูปภาพทั้งรูปมาประมวลผล เช่น ซอฟต์แวร์ที่นำภาพใบของพืชมาตรวจหาโรคโดย ใช้การประมวลผลภาพรวมกับดาต้าไมนิ่ง ทั้งนี้ OpenCV ยังสามารถพัฒนาในด้านของ Machine Learning ได้อีกด้วย | + | <br> |
+ | * '''OpenCV''' หรือ Open Source Computer Vision เป็น Library สำหรับเขียนโปรแกรมหรือพัฒนาซอฟต์แวร์ให้สามารถประมวลผลภาพได้ ในทั้งนี้ในด้านธุรกิจและบริการที่จะสามารถมองเห็นภาพให้ชัดเจนได้เลยอาจจะยกตัวอย่างว่า ระบบตรวจจับใบหน้า (Face Detection) และ ในด้านการประมวลผลภาพ (Image Processing) จะสามารถที่จะพัฒนาเป็น ระบบที่นำรูปภาพทั้งรูปมาประมวลผล เช่น ซอฟต์แวร์ที่นำภาพใบของพืชมาตรวจหาโรคโดย ใช้การประมวลผลภาพรวมกับดาต้าไมนิ่ง ทั้งนี้ OpenCV ยังสามารถพัฒนาในด้านของ Machine Learning ได้อีกด้วย | ||
+ | <br> | ||
+ | == เริ่มต้นใช้งาน == | ||
+ | * [[ การติดตั้ง Installation ]] | ||
+ | === Gui Features in OpenCV === | ||
+ | *[[Getting Started with Images]] | ||
+ | :เรียนรู้การโหลดภาพและบันทึกกลับ | ||
+ | *[[Getting Started with Videos]] | ||
+ | :เรียนการเล่นวีดีโอ การจับภาพจากกล้องถ่ายรูปและเขียนเป็นวีดีโอ | ||
+ | *[[Drawing Functions in OpenCV]] | ||
+ | :เรียนรู้การวาดเส้นสี่เหลี่ยม, วงรี, วงกลม ฯลฯ ด้วย OpenCV | ||
+ | *[[Mouse as a Paint-Brush]] | ||
+ | :เรียนรู้การใช้เมาส์วาด | ||
+ | *[[Trackbar as the Color Palette]] | ||
+ | :สร้าง trackbar เพื่อควบคุมพารามิเตอร์ | ||
+ | === Object Detection === | ||
+ | * [[Face Detection]] | ||
+ | <br> | ||
+ | === Core Operations === | ||
+ | * [[ Basic Operations on Images ]] | ||
+ | :เรียนรู้การอ่านและแก้ไขค่าพิกเซล ด้วยการทำงานกับภาพ ROI และพื้นฐานกระบวนการอื่นๆ | ||
+ | * [[ Arithmetic Operations on Images ]] | ||
+ | :เรียนรู้หลักการทางคณิตศาสตร์มาใช้งานกับรูปภาพ | ||
+ | * [[ Performance Measurement and Improvement Techniques ]] | ||
+ | :เพิ่มความรวดเร็วและประสิทธิภาพให้กับซอฟต์แวร์ที่คุณพัฒนา | ||
+ | <br> | ||
+ | ===Image Processing in OpenCV=== | ||
+ | *[[Changing Colorspaces]] | ||
+ | :เรียนรู้ที่จะเปลี่ยนภาพ ช่องว่างระหว่างสีที่แตกต่าง เรียนรู้ที่จะติดตามวัตถุสีในวิดีโอ | ||
+ | *[[Geometric Transformations of Images]] | ||
+ | :เรียนรู้ที่จะใช้การแปลงทางเรขาคณิตที่แตกต่างกันไปเช่น การหมุนภาพ, การแปล ฯลฯ | ||
+ | *[[Image Thresholding]] | ||
+ | :เรียนรู้ที่จะแปลงภาพให้ภาพไบนารีใช้ thresholding | ||
+ | *[[Smoothing Images]] | ||
+ | :เรียนรู้ที่จะเบลอภาพ กรองภาพที่มีเมล็ดที่กำหนดเอง ฯลฯ | ||
+ | *[[Morphological Transformations]] | ||
+ | :เรียนรู้เกี่ยวกับการเปลี่ยนแปลงทางสัณฐานวิทยา | ||
+ | *[[Image Gradients]] | ||
+ | :เรียนรู้ที่จะหาภาพการไล่ระดับสีขอบ | ||
+ | *[[Canny Edge Detection]] | ||
+ | :เรียนรู้ที่จะหาขอบกับการตรวจหาขอบ | ||
+ | *[[Image Pyramids]] | ||
+ | :เรียนรู้เกี่ยวกับปิรามิดของภาพและวิธีการที่จะใช้สำหรับการผสมภาพ | ||
+ | *[[Contours in OpenCV]] | ||
+ | :ทุกอย่างเกี่ยวกับรูปทรงใน OpenCV | ||
+ | *[[Histograms in OpenCV]] | ||
+ | :ทุกอย่างเกี่ยวกับ histograms ใน OpenCV | ||
+ | *[[Image Transforms in OpenCV]] | ||
+ | :ภาพที่แตกต่างกันใน OpenCV เช่นแปลงฟูเรียโคไซน์แปลง ฯลฯ | ||
+ | *[[Template Matching]] | ||
+ | :เรียนรู้ที่จะค้นหาวัตถุในภาพโดยใช้แม่แบบการจับคู่ | ||
+ | *[[Hough Line Transform]] | ||
+ | :เรียนรู้ที่จะตรวจสอบเส้นในภาพ | ||
+ | *[[Hough Circle Transform]] | ||
+ | :เรียนรู้ที่จะตรวจสอบวงกลมในภาพ | ||
+ | *[[Image Segmentation with Watershed Algorithm]] | ||
+ | :เรียนรู้ที่จับภาพส่วนที่มีการแบ่งส่วนลุ่มน้ำ | ||
+ | *[[Interactive Foreground Extraction using GrabCut Algorithm]] | ||
+ | :เรียนรู้ที่จะดึงหน้าด้วยวิธี GrabCut | ||
+ | <br> | ||
+ | === Video Analysis === | ||
+ | *[[Meanshift and Camshift]] | ||
+ | :เรียนรู้การติดตามแบบ color-based tracking โดยใช้ Meanshift และ Camshift | ||
+ | *[[Optical Flow]] | ||
+ | :เรียนรู้เกี่ยวกับแนวคิดเกี่ยวกับ "Optical Flow" ที่เกี่ยวกับ Video | ||
+ | *[[Background Subtraction]] | ||
+ | :เรียนรู้ในการแยก Foreground และ Background โดยการรู้จักวัตถุนั้นๆ | ||
+ | <br> | ||
+ | === Camera Calibration and 3D Reconstruction === | ||
+ | *[[Camera Calibration]] | ||
+ | :เรียนรู้ใช้งานกล้องที่ดีและการถ่ายด้วยมือ หากมีความเพี้ยนของภาพจะแก้อย่างไร | ||
+ | *[[Pose Estimation]] | ||
+ | :เรียนรู้เรื่องเล็กๆน้อยๆเกี่ยวกับการสร้างงาน 3 มิติกับโมดูล Calib | ||
+ | *[[Epipolar Geometry]] | ||
+ | :เรียนรู้และเข้าใจเรื่องเรณาคณิต Epipolar และข้อจำกัดของ Epipolar | ||
+ | *[[Depth Map from Stereo Images]] | ||
+ | :เรียนรู้เกี่ยวกับข้อมูลเชิงลึกของภาพ 2 มิติ | ||
+ | === Machine Learning === | ||
+ | *[[K-Nearest Neighbour]] | ||
+ | :เรียนรู้ใช้งาน kNN สำหรับจำแนก Plus เกี่ยวกับการเขียนด้วยมือเปล่าโดยใช้ kNN | ||
+ | *[[Support Vector Machines (SVM)]] | ||
+ | :เข้าใจแนวคิดของ SVM | ||
+ | *[[K-Means Clustering]] | ||
+ | :เรียนรู้เกี่ยวกับการใช้ K-Means Clustering เพื่อหากลุ่มของตัวเลขของ Clusters และเรียนรู้การทำ Quantization Color โดยใช้ K-Means Clustering | ||
− | == | + | === อ้างอิง === |
+ | [[http://www.opencv.org OpenCV.org]] |
รุ่นแก้ไขปัจจุบันเมื่อ 03:30, 11 สิงหาคม 2559
เนื้อหา
OpenCV
What IS CV?
- CV ย่อมากจากคำว่า Computer Vision คือ การนำเทคโนโยลีสารสนเทศต่างๆ ทั้ง ภาพ และ วิดีโอ มาประมวลผลโดยนำหลักการทางคณิตศาสตร์เข้ามาช่วยในการพัฒนา
- OpenCV หรือ Open Source Computer Vision เป็น Library สำหรับเขียนโปรแกรมหรือพัฒนาซอฟต์แวร์ให้สามารถประมวลผลภาพได้ ในทั้งนี้ในด้านธุรกิจและบริการที่จะสามารถมองเห็นภาพให้ชัดเจนได้เลยอาจจะยกตัวอย่างว่า ระบบตรวจจับใบหน้า (Face Detection) และ ในด้านการประมวลผลภาพ (Image Processing) จะสามารถที่จะพัฒนาเป็น ระบบที่นำรูปภาพทั้งรูปมาประมวลผล เช่น ซอฟต์แวร์ที่นำภาพใบของพืชมาตรวจหาโรคโดย ใช้การประมวลผลภาพรวมกับดาต้าไมนิ่ง ทั้งนี้ OpenCV ยังสามารถพัฒนาในด้านของ Machine Learning ได้อีกด้วย
เริ่มต้นใช้งาน
Gui Features in OpenCV
- เรียนรู้การโหลดภาพและบันทึกกลับ
- เรียนการเล่นวีดีโอ การจับภาพจากกล้องถ่ายรูปและเขียนเป็นวีดีโอ
- เรียนรู้การวาดเส้นสี่เหลี่ยม, วงรี, วงกลม ฯลฯ ด้วย OpenCV
- เรียนรู้การใช้เมาส์วาด
- สร้าง trackbar เพื่อควบคุมพารามิเตอร์
Object Detection
Core Operations
- เรียนรู้การอ่านและแก้ไขค่าพิกเซล ด้วยการทำงานกับภาพ ROI และพื้นฐานกระบวนการอื่นๆ
- เรียนรู้หลักการทางคณิตศาสตร์มาใช้งานกับรูปภาพ
- เพิ่มความรวดเร็วและประสิทธิภาพให้กับซอฟต์แวร์ที่คุณพัฒนา
Image Processing in OpenCV
- เรียนรู้ที่จะเปลี่ยนภาพ ช่องว่างระหว่างสีที่แตกต่าง เรียนรู้ที่จะติดตามวัตถุสีในวิดีโอ
- เรียนรู้ที่จะใช้การแปลงทางเรขาคณิตที่แตกต่างกันไปเช่น การหมุนภาพ, การแปล ฯลฯ
- เรียนรู้ที่จะแปลงภาพให้ภาพไบนารีใช้ thresholding
- เรียนรู้ที่จะเบลอภาพ กรองภาพที่มีเมล็ดที่กำหนดเอง ฯลฯ
- เรียนรู้เกี่ยวกับการเปลี่ยนแปลงทางสัณฐานวิทยา
- เรียนรู้ที่จะหาภาพการไล่ระดับสีขอบ
- เรียนรู้ที่จะหาขอบกับการตรวจหาขอบ
- เรียนรู้เกี่ยวกับปิรามิดของภาพและวิธีการที่จะใช้สำหรับการผสมภาพ
- ทุกอย่างเกี่ยวกับรูปทรงใน OpenCV
- ทุกอย่างเกี่ยวกับ histograms ใน OpenCV
- ภาพที่แตกต่างกันใน OpenCV เช่นแปลงฟูเรียโคไซน์แปลง ฯลฯ
- เรียนรู้ที่จะค้นหาวัตถุในภาพโดยใช้แม่แบบการจับคู่
- เรียนรู้ที่จะตรวจสอบเส้นในภาพ
- เรียนรู้ที่จะตรวจสอบวงกลมในภาพ
- เรียนรู้ที่จับภาพส่วนที่มีการแบ่งส่วนลุ่มน้ำ
- เรียนรู้ที่จะดึงหน้าด้วยวิธี GrabCut
Video Analysis
- เรียนรู้การติดตามแบบ color-based tracking โดยใช้ Meanshift และ Camshift
- เรียนรู้เกี่ยวกับแนวคิดเกี่ยวกับ "Optical Flow" ที่เกี่ยวกับ Video
- เรียนรู้ในการแยก Foreground และ Background โดยการรู้จักวัตถุนั้นๆ
Camera Calibration and 3D Reconstruction
- เรียนรู้ใช้งานกล้องที่ดีและการถ่ายด้วยมือ หากมีความเพี้ยนของภาพจะแก้อย่างไร
- เรียนรู้เรื่องเล็กๆน้อยๆเกี่ยวกับการสร้างงาน 3 มิติกับโมดูล Calib
- เรียนรู้และเข้าใจเรื่องเรณาคณิต Epipolar และข้อจำกัดของ Epipolar
- เรียนรู้เกี่ยวกับข้อมูลเชิงลึกของภาพ 2 มิติ
Machine Learning
- เรียนรู้ใช้งาน kNN สำหรับจำแนก Plus เกี่ยวกับการเขียนด้วยมือเปล่าโดยใช้ kNN
- เข้าใจแนวคิดของ SVM
- เรียนรู้เกี่ยวกับการใช้ K-Means Clustering เพื่อหากลุ่มของตัวเลขของ Clusters และเรียนรู้การทำ Quantization Color โดยใช้ K-Means Clustering