๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

EX3 05) [OpenCV๋กœ ๋ฐฐ์šฐ๋Š” C++์˜ ์˜์ƒ์ฒ˜๋ฆฌ] Rect_ ํด๋ž˜์Šค ๋ณธ๋ฌธ

๐Ÿ‘ฉ‍๐Ÿ’ป IoT (Embedded)/Image Processing

EX3 05) [OpenCV๋กœ ๋ฐฐ์šฐ๋Š” C++์˜ ์˜์ƒ์ฒ˜๋ฆฌ] Rect_ ํด๋ž˜์Šค

์ง•์ง•์•ŒํŒŒ์นด 2023. 1. 11. 23:43
728x90
๋ฐ˜์‘ํ˜•

<๋ณธ ๋ธ”๋กœ๊ทธ๋Š” OpenCV๋กœ ๋ฐฐ์šฐ๋Š” ์˜์ƒ์ฒ˜๋ฆฌ ๋ฐ ์‘์šฉ(์ƒ๋Šฅ์ถœํŒ์‚ฌ)์˜ ์„œ์ ์„ ์ฐธ๊ณ ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค>

 

โญ Rect_ ํด๋ž˜์Šค

2์ฐจ์›์˜ ์‚ฌ๊ฐํ˜• ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ ํ…œํ”Œ๋ฆฟ ํด๋ž˜์Šค

๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋กœ ์‹œ๊ฐ ์ขŒํ‘œ(x, y)์™€ ํฌ๊ธฐ(width, height) ์ •๋ณด ํฌํ•จ

 

์‚ฌ๊ฐํ˜•์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋กœ, ๊ฐ์ฒด๋ฅผ ์„ ์–ธ

 

// Rect ํด๋ž˜์Šค
#include <opencv2/opencv.hpp>
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_<double> sz3(100.2, 300.9);
	// Rect_ ๊ฐ์ฒด ๊ธฐ๋ณธ ์„ ์–ธ ๋ฐฉ์‹
	Rect_<int> rect1(10, 10, 30, 50);
	Rect_<float> rect2(pt1, pt2);
	Rect_<double> rect3(Point2d(20.5, 10), sz);

	// Size_ ๊ฐ์ฒด ๊ฐ„๊ฒฐ ์„ ์–ธ ๋ฐฉ์‹ -> i, f, d
	Rect rect4 = rect1 + (Point)pt1;
	Rect2f rect5 = rect2 + (Size2f)sz;
	Rect2d rect6 = rect1 & (Rect)rect2;

	cout << "rect3 = " << rect3.x << ", " << rect3.y << ", ";
	cout << rect3.width << "x" << rect3.height << endl;
	cout << "rect4 = " << rect4.tl() << " " << rect4.br() << endl;
	cout << "rect5 ํฌ๊ธฐ = " << rect5.size() << endl;
	cout << "[rect6] = " << rect6 << endl;
	return 0;
}

728x90
๋ฐ˜์‘ํ˜•
Comments