OpenCV 버전 업데이트 이후 비 사실적 렌더링 효과가 추가 되어 습니다.
컴퓨터 그래픽스의 한 영역으로 사실적인 렌더링 이외의 다양한 표현 양식을 다룬다. 사실주의에 초점을 맞추었던 기존의 방식과는 달리, NPR은 회화나 드로잉, 도해, 만화 같은 인공적인 양식에 영향을 받는다. 자주 등장하는 예로 만화 같은 그림을 묘사하는 비디오 게임이나 영화에서 사용하는 툰 셰이딩이 있다.
자세한 내용은 아래 포스팅 참고 하시길 바랍니다.
2018/12/03 - [OpenCV] - 비 사실적 렌더링(Non-photorealistic Rendering, NPR)
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <iostream>
#include <string>
using namespace std;
using namespace cv;
class cvTimerCustom {
public:
cvTimerCustom(string name) {
this->name = name;
tm.start();
}
~cvTimerCustom() {
tm.stop();
double average_time = tm.getTimeSec() / tm.getCounter();
std::cout << name << " - " << "Average time in second per iteration is: " << average_time << std::endl;
}
private:
string name;
TickMeter tm;
};
#define CV_STOPWATCH(arg) cvTimerCustom(arg)
int main() {
Mat img = imread("image.jpg", IMREAD_COLOR);
if(img.empty()) {
cout << "internal error." << endl;
return -1;
}
imshow("src", img);
// pecilSketch Effect
{
CV_STOPWATCH("pencilSketch");
Mat img1, dst;
pencilSketch(img,img1, dst, 10 , 0.1f, 0.03f);
imshow("Pencil Sketch",img1);
imshow("Color Pencil Sketch",dst);
}
{
CV_STOPWATCH("edgePreservingFilter");
Mat edge;
edgePreservingFilter(img, edge, 1);
imshow("Edge Preserve Smoothing", edge);
}
{
CV_STOPWATCH("detail");
Mat detail;
detailEnhance(img, detail);
imshow("Detail Enhanced",detail);;
}
{
CV_STOPWATCH("stylization");
Mat style;
stylization(img, style);
imshow("Stylization",style);;
}
waitKey(0);
return 0;
}
그레이 스케일(grayscale) 이미지 출력 하기 - OpenCV (0) | 2021.02.14 |
---|---|
타이머 사용하기 TickMeter class - OpenCV (0) | 2021.02.14 |
템플릿 매칭 Template Matching - OpenCV (0) | 2021.02.14 |
OpenCV로 이미지 출력 하기 (0) | 2021.02.14 |
AVI 출력 하기 (0) | 2021.02.14 |
댓글 영역