본문 바로가기
반응형

OpenCV14

[openCV][c++] 이미지 도트화 시키기 프로젝트 "도트는 귀여워" 1. 도트는 손이 많이 가는 작업이다. -> 쉽게 도트를 만들 수 있으면 좋겠다. 2. 미적 감각이 없는 사람은 도트를 잘 만들지 못함. 3. 그림이 아닌 일반 사진을 도트화하고 싶은 수요가 있음. 4. 그림 리소스 > 도트 리소스 양의 차이가 큼. -> 도트게임 만들 때 좀 더 리소스 구하는 게 수월했으면 좋겠다. 1. 도트화 하고 싶은 이미지를 가져와서 NxN 도트화를 할 N 값을 정하여 마스크 x2, y2 값 정하기 2. 이때 x2, y2 랑 조각조각 분할했을 때의 한 조각에 대한 아래와 같이 넓이와 높이를 가리킨다. 그리고 위 마스크의 픽셀들의 색깔 값을 다 더하여 평균내서 하나의 색깔 정해준다. (아래 경우 왼쪽 그림의 평균적인 색깔을 오른 쪽 그림의.. 2021. 1. 13.
[openCV / C++] 사진 교차해서 영상 만들기 이번에 해보고자 하는 것은 두 개의 이미지를 가지고 A이미지 -> B이미지 / B이미지 -> A이미지 로 서서히 변하면서 마치 영상을 만드는 듯한 기능을 구현해보겠습니다. 먼저, 두 개의 그림을 준비합니다. 만약 위 두개의 그림을 반반씩 합치면 아래와 같은 결과가 나옵니다. 이렇게 되면 수치상 A 그림 0.5 B 그림 0.5 해준 것인데 이것을 부드럽게 조정해주면 됩니다. A 1 B 0 -> A 0.9 B 0.1 -> A 0.8 B 0.2 이런식으로 가중치를 따르게 하여 합쳐주는 것입니다. 아래는 openCV 를 활용해서 C++로 구현한 코드 #include #include "opencv2/opencv.hpp" int main(void) { auto img = cvLoadImage("img\\cross1.. 2021. 1. 5.
[openCV / C++] 색깔 가져와서 사각형 그리기 이번에 해보고자 하는 것은 빈 스케치 위에 색깔을 선택해서 그 색깔에 맞는 사각형을 스케치 위에 그리는 기능을 구현해볼까 합니다. 먼저, 아래 코드를 이용하기 위해 사용한 이미지입니다. 해당 이미지는 색깔 찍기 위해 사용됩니다. 아래는 openCV 를 활용해서 C++로 구현한 코드 #include #include "opencv2/opencv.hpp" IplImage *img, *img2, *paimg; CvPoint prepos; CvScalar color = cvScalar(0,0,0); CvPoint startPos, endPos; bool isButton = false; void onMouseDrawing(int event, int x, int y, int flags, void *param) { i.. 2021. 1. 4.
[opencv][C++ ] Patterning을 이용하여 사진 묘사 Patterning 란? 특정 패턴을 반복적으로 이용하여 사진을 묘사하는 방법이다. 이러한 방법을 사용하는 이유는 3x3 마스크 씌워 계산하기 때문에 계산량도 적고 점 찍는 숫자도 줄어든다. 즉, 프린트할 때 점을 적게 찍기 때문에 잉크가 덜 들 수 있다. 단점으로는 가로 아니면 세로로 줄 표시가 난다는 점이 있다. 아래는 openCV 를 활용해서 C++로 구현한 코드 void computePatterning(IplImage *img, IplImage *cpimg) { //mask size > 3x3 [0-8] //3x3 칙셀에서 한점을 찍는 순서 int order[] = { 1,8,0,6,2,5,7,3,4 }; for (int i = 0; i width-2; i+=3) { for (int .. 2021. 1. 4.
반응형