#include "opencv.hpp"
using namespace cv;
using namespace std;
int main()
{
Mat A(10, 10, CV_32F);
for (int i = 0; i < A.rows; i++)
for (int j = 0; j < A.cols; j++)
A.at<float>(i, j) = (float)(i*A.cols + j);
cout << "A=" << A.size() << "=" << A << endl;
Mat B = A(Range(5, 8), Range(3, 6));
cout << "B=" << B.size() << "=" << B << endl;
Size wholeSize; Point ofs;
B.locateROI(wholeSize, ofs);
cout << "wholeSize=" << wholeSize << "ofs=" << ofs << endl;
Mat C = B.adjustROI(1, 1, 1, 1);
cout << "B=" << B.size() << "B=" << B << endl;
cout << "C=" << C.size() << "C=" << C << endl;
return 0;
}
#include <opencv\cv.h>
#include <opencv\highgui.h>
using namespace cv;
using namespace std;
int main(){
// 이미지 불러오기 (read image).
Mat image = imread("image.jpg");
// 에러 처리 (error).
if ( !image.data ) {
return -1;
}
// 관심영역 설정 (set ROI (X, Y, W, H)).
Rect rect(100, 30, 150, 300);
// 관심영역 자르기 (Crop ROI).
Mat subImage = image(rect);
// show
imshow("image", subImage);
waitKey(0);
return 0;
}
#다른방법
#include "opencv.hpp"
using namespace cv;
using namespace std;
int main()
{
Mat_<uchar> A(10, 10);
for (int i = 0; i < A.rows; i++)
for (int j = 0; j < A.cols; j++)
A(i, j) = (uchar)(i*A.cols + j);
cout << "A = " << A << endl;
Mat_<uchar> B = A(Range(5, 8), Range(3, 6));
cout << "B = " << B << endl;
Mat_<uchar> C = B.adjustROI(1, 1, 1, 1);
cout << "B = " << B << endl;
cout << "C = " << C << endl;
Mat D = A(Rect(0, 0, 5, 5));
cout << "D = " << D << endl;
Range ranges[2] = { Range(5, 8), Range(3, 6) };
Mat E = A(ranges);
cout << "E = " << E << endl;
return 0;
}
'OpenCV' 카테고리의 다른 글
윤곽선 그리기 - DrawContours (0) | 2017.11.15 |
---|---|
윤곽선 정보 찾기 - findContours (0) | 2017.11.15 |
블러함수들 (0) | 2017.11.11 |
merge, split 함수 (0) | 2017.11.11 |
inrange 이진화 영상 (0) | 2017.11.11 |