개발/OpenCV
opencv 샤프닝(Sharpening)
njsung
2018. 4. 10. 00:46
반응형
#include <opencv\highgui.h>
#include <opencv2\opencv.hpp>
#include <opencv/cv.h>
using namespace cv;
int main() {
Mat inputImg, resultImg;
inputImg = imread("city.jpg", IMREAD_COLOR);
CV_Assert(inputImg.depth() == CV_8U);
resultImg.create(inputImg.size(), inputImg.type());
const int nChannels = inputImg.channels();
for (int j = 1; j < inputImg.rows - 1; ++j)
{
const uchar* prev = inputImg.ptr(j - 1);
const uchar* curr = inputImg.ptr(j );
const uchar* next = inputImg.ptr(j + 1);
uchar* output = resultImg.ptr(j);
for (int i = nChannels; i < nChannels*(inputImg.cols - 1); ++i)
{
*output++ = saturate_cast(5 * curr[i] - curr[i - nChannels] - curr[i + nChannels] - prev[i] - next[i]);
}
}
resultImg.row(0).setTo(Scalar(0));
resultImg.row(resultImg.rows - 1).setTo(Scalar(0));
resultImg.col(0).setTo(Scalar(0));
resultImg.col(resultImg.cols - 1).setTo(Scalar(0));
imshow("Original", inputImg);
imshow("S", resultImg);
cvWaitKey(0);
return 0;
}
opencv를 이용해 이미지를 선명하게 바꾸는 샤프닝 예제입니다.
결과는 다음과 같습니다.
왼쪽 이미지에 비해 오른쪽 이미지가 조금 더 선명해진것을 확인할 수 있습니다
반응형