Sharpness
- 이미지의 선명도를 높일때 사용합니다. 흐릿한 Kennel을 사용해 이미지를 좀더 거칠게 표현 합니다.
void TestSharpness()
{
Mat MatImage, OutMat;
MatImage = cv::imread("test.bmp");//이미지 로드
cv::Mat kernel(3, 3, CV_32F, cv::Scalar(0));// 커널 생성(모든 값을 0으로 초기화)
kernel.at<float>(1, 1) = 5.0; // 커널 값에 할당
kernel.at<float>(0, 1) = -1.0;
kernel.at<float>(2, 1) = -1.0;
kernel.at<float>(1, 0) = -1.0;
kernel.at<float>(1, 2) = -1.0;
cv::filter2D(MatImage, OutMat, MatImage.depth(), kernel);
cv::imshow("MatImage", MatImage);
cv::imshow("OutMat", OutMat);
waitKey(0);
}
Rotate
- 이미지 회전을 할때 사용합니다. 이미지의 중심을 기준으로 설정된 각도로 회전 시킵니다.
void TestRotate()
{
Mat MatImage, OutRotateMat;
double dDgree = 45;//회전할 각도
MatImage = cv::imread("audrey.bmp");//이미지 로드
Point2f centralPoint((MatImage.cols - 1) / 2.0, (MatImage.rows - 1) / 2.0);//이미지 중심 포인트
Mat rotationmatix = getRotationMatrix2D(centralPoint, dDgree, 1.0);
warpAffine(MatImage, OutRotateMat, rotationmatix, MatImage.size());
cv::imshow("MatImage", MatImage);
cv::imshow("OutRotateMat", OutRotateMat);
waitKey(0);
}
Measure Focus
- 이미지 포커스값을 수치로 계산하는 방식입니다. 좀더 선명한 이미지일수록 높은 값이 나옵니다.
좌측 이미지 계산값은 1392.1 우측 이미지는 45.5
double OCV_FocusMeasure(Mat &src)
{
Mat dst, src_gray;
cv::Scalar mean, stddev;
if (src.channels() == 1)//Mono 면 바로 Laplacian
{
cv::Laplacian(src, dst, CV_64F);
}
else//RGB 컬러면 Gray로 변경후 Laplacian
{
cvtColor(src, src_gray, CV_RGB2GRAY);// Convert the image to grayscale
cv::Laplacian(src_gray, dst, CV_64F);
}
cv::meanStdDev(dst, mean, stddev);
return stddev.val[0] * stddev.val[0];
}
void TestMeasureFocus()
{
Mat MatImage1, MatImage2;
double dFocus1, dFocus2;
CString szFocus1, szFocus2;
MatImage1 = cv::imread("test1.bmp");//이미지 로드
MatImage2 = cv::imread("test2.bmp");//이미지 로드
dFocus1 = OCV_FocusMeasure(MatImage1);
szFocus1.Format("MatImage1(%.1f)", dFocus1);
dFocus2 = OCV_FocusMeasure(MatImage2);
szFocus2.Format("MatImage2(%.1f)", dFocus2);
cv::imshow(szFocus1.GetBuffer(), MatImage1);
cv::imshow(szFocus2.GetBuffer(), MatImage2);
waitKey(0);
}
'Opencv' 카테고리의 다른 글
Opencv Threshold 설명 (0) | 2023.02.17 |
---|---|
Opencv Template Matching (0) | 2022.06.15 |
Opencv 이미지 전처리1(Sobel, Canny, Erode, Dilate) (0) | 2022.06.15 |
Opencv convert type (Mat to iplimage, iplimage to Mat) (0) | 2022.06.15 |
댓글