๋ชฉ๋ก๐ฉโ๐ป IoT (Embedded)/Image Processing (77)
๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?

Murtaza's Workshop ์ ์ ํ๋ธ๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค :-)>=> LEARN OPENCV C++ in 4 HOURS | Including 3x Projects | Computer Vision ๐ Wrap Perspective๐ง getPerspectiveTransform์๊ทผ ๋ณํ์ ์ด๋ฏธ์ง๋ฅผ 3์ฐจ์์ผ๋ก ๋ณํ๋ฉ๋ฆฌ ์๋ ๊ฒ์ ์๊ฒ ๋ณด์ด๊ณ , ๊ฐ๊น์ด ์๋ ๊ฒ์ ํฌ๊ฒ ๋ณด์ด๋ ๊ฒ ์๊ทผ๋ฒ์ ์๋ฆฌ ์๊ทผ ๋ณํ์ ํ์ํ ๋ณํ ํ๋ ฌ์ ๋ฐํํด์ฃผ๋ ํจ์mtrx = cv2.getPerspectiveTransform(pts1, pts2)pts1 : ๋ณํ ์ด์ ์์์ ์ขํ 4๊ฐ, 4 x 2 ๋ฐฐ์ดpts2 : ๋ณํ ์ดํ ์์์ ์ขํ 4๊ฐ, 4 x 2 ๋ฐฐ์ดmtrx : ๋ณํํ๋ ฌ ๋ฐํ, 3 x 3 ํ๋ ฌ ๐ง warp..

Murtaza's Workshop ์ ์ ํ๋ธ๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค :-)>=> LEARN OPENCV C++ in 4 HOURS | Including 3x Projects | Computer Vision ๐ Drawing shapes๐ง [Default] Drawing shapes#include // OpenCV์์ ์ง์ํ๋ ๋ชจ๋ ๊ธฐ๋ฅ#include // ๋น๋์ค ์ถ์ ๋ฐ ๋ฐฐ๊ฒฝ segmentation๊ณผ ๊ด๋ จ๋ ๋ฃจํด#include // ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ด ์ ์ธ (Mat ์ด๋ Point๊ฐ ์ ์ธ, ํ๋ ฌ ์ฐ์ฐ ํน์ ๋ฒกํฐ ์ฐ์ฐ)#include // ์๋์ฐ ํ๋ฉด, UI์ฒ๋ฆฌ(์ฌ๋ผ์ด๋, ๋ฒํผ ๋ฑ) ๋ฐ ๋ง์ฐ์ค ์ ์ด ๊ฐ๋ฅ#include #include using namespace cv;using ..

Murtaza's Workshop ์ ์ ํ๋ธ๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค :-)>=> LEARN OPENCV C++ in 4 HOURS | Including 3x Projects | Computer Vision ๐ Resize and Crop๐ง Resize์ด๋ฏธ์ง๋ฅผ ํ๋ ๋๋ ์ถ์cv2.resize ( img , dsize, fx, fy, interpolation ) img : image file dsize : ๊ฐ๋ก, ์ธ๋ก ํํ์ ํํ์ ์ง์ ํ์ฌ, ํ๋ ๋ฐ ์ถ์ ๊ฐ๋ฅ ex) (100, 200)fx : ๊ฐ๋ก ์ฌ์ด์ฆ์ ๋ฐฐ์ , 2๋ฐฐ ํ๋๋ 2.0 , 1/2 ์ถ์๋ 0.5 exfy : ์ธ๋ก ์ฌ์ด์ฆ์ ๋ฐฐ์interpolation : ๋ณด๊ฐ๋ฒ ( ์ด๋ค ๋ฐฉ์์ผ๋ก ์ด๋ฏธ์ง ๊ฐ์ ์ฑ์ธ๊ฒ์ธ๊ฐ ) INTE..

Murtaza's Workshop ์ ์ ํ๋ธ๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค :-)>=> LEARN OPENCV C++ in 4 HOURS | Including 3x Projects | Computer Vision ๐ RGB(Red, Green, Blue) ์์์ ํํํ๋ ๋ฐฉ๋ฒ์ผ๋ก๋ RGB(Red, Green, Blue) : ๋นจ๊ฐ, ์ด๋ก, ํ๋ ์ธ ๊ฐ์ง ์์ ๋น์ ์์ด์ ์ํ๋ ์์ ๋ง๋ฆ: ๊ฐ ์์์ 0~255 ์ฌ์ด์ ๊ฐ์ผ๋ก ํ์ํ๊ณ ๊ฐ์ด ์ปค์ง์๋ก ํด๋น ์์์ ๋น์ด ๋ฐ์์ง๋ ์๋ฆฌ: RGB = (255, 255, 255) ์ผ ๋๋ ํฐ์์ด๊ณ , RGB = (0, 0, 0) ์ผ ๋๋ ๊ฒ์์ OpenCV๋ ๊ทธ ๋ฐ๋์ ์์์ธ BGRRGBA๋ RGB์ A(์ํ, alpha)๊ฐ ์ถ๊ฐ๋ ์์ ํ๊ธฐ๋ฒ: A๋ ๋ฐฐ๊ฒฝ์ ํฌ..

Murtaza's Workshop ์ ์ ํ๋ธ๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค :-)>=> LEARN OPENCV C++ in 4 HOURS | Including 3x Projects | Computer Vision ๐ Read Images, Videos and Webcam๐ง Importing Images#include // OpenCV์์ ์ง์ํ๋ ๋ชจ๋ ๊ธฐ๋ฅ#include // ๋น๋์ค ์ถ์ ๋ฐ ๋ฐฐ๊ฒฝ segmentation๊ณผ ๊ด๋ จ๋ ๋ฃจํด#include // ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ด ์ ์ธ (Mat ์ด๋ Point๊ฐ ์ ์ธ, ํ๋ ฌ ์ฐ์ฐ ํน์ ๋ฒกํฐ ์ฐ์ฐ)#include // ์๋์ฐ ํ๋ฉด, UI์ฒ๋ฆฌ(์ฌ๋ผ์ด๋, ๋ฒํผ ๋ฑ) ๋ฐ ๋ง์ฐ์ค ์ ์ด ๊ฐ๋ฅ#include #include using namespace cv..

โญ Rect_ ํด๋์ค 2์ฐจ์์ ์ฌ๊ฐํ ์ ๋ณด๋ฅผ ๋ํ๋ด๊ธฐ ์ํ ํ ํ๋ฆฟ ํด๋์ค ๋ฉค๋ฒ ๋ณ์๋ก ์๊ฐ ์ขํ(x, y)์ ํฌ๊ธฐ(width, height) ์ ๋ณด ํฌํจ ์ฌ๊ฐํ์ ์ ์ํ ์ ์๋ ์ ๋ณด๋ก, ๊ฐ์ฒด๋ฅผ ์ ์ธ // Rect ํด๋์ค #include using namespace cv; using namespace std; int main() { Size2d sz(100.5, 60.6); Point2f pt1(20.f, 30.f), pt2(100.f, 200.f); Size_ sz3(100.2, 300.9); // Rect_ ๊ฐ์ฒด ๊ธฐ๋ณธ ์ ์ธ ๋ฐฉ์ Rect_ rect1(10, 10, 30, 50); Rect_ rect2(pt1, pt2); Rect_ rect3(Point2d(20.5, 10), sz); // Size_ ๊ฐ..

โญ Size_ ํด๋์ค ์ด๋ฏธ์ง๋ ์ฌ๊ฐํ์ ํฌ๊ธฐ๋ฅผ ๊ท์ ํ๋ ํ ํ๋ฆฟ ํด๋์ค width, height์ ๋ฉค๋ฒ ๋ณ์ ๊ฐ๋๋ค // Size ํด๋์ค #include using namespace cv; using namespace std; int main() { // Size_ ๊ฐ์ฒด ๊ธฐ๋ณธ ์ ์ธ ๋ฐฉ์ Size_ sz1(100, 200); Size_ sz2(92.3f, 125.23f); Size_ sz3(100.2, 300.9); // Size_ ๊ฐ์ฒด ๊ฐ๊ฒฐ ์ ์ธ ๋ฐฉ์ -> i, f, d Size sz4(120, 69); Size2f sz5(0.3f, 0.f); Size2d sz6(0.25, 0.6); Point2d pt1(0.25, 0.6); Size2i sz7 = sz1 + (Size2i)sz2; Size2i sz8 =..

โญ Point3_ ํด๋์ค 3์ฐจ์ ์๋ฃ๋ฅผ ๋ํ๋ด๊ธฐ ์ํ ์๋ฃํ โ namespace ๋ด๋ถ ์๋ณ์(ํ์, ํจ์, ๋ณ์ ๋ฑ)์ ๋ฒ์๋ฅผ ์ ๊ณตํ๋ ์ ์ธ์ ์์ญ #include using namespace cv; using namespace std; int main() { // ๊ฐ์ฒด ๊ธฐ๋ณธ ๋ฐ ๊ฐ๊ฒฐ ์ ์ธ ๋ฐฉ์ Point3_ pt1(100, 200, 300); Point3_ pt2(92.3f, 125.23f, 250.f); Point3f pt3(0.3f, 0.f, 15.7f); Point3d pt4(0.25, 0.6, 33.3); // ๊ฐ์ฒด ๊ฐ๊ฒฐ ์ ์ธ ๋ฐ ๊ฐ์ฒด ์ฐ์ฐ -> i, f, d Point3i pt5 = pt1 - (Point3i)pt2; Point3f pt6 = pt2 * 3.14f; Point3d pt7 = ..