dll 4

[도서 실습] Qt 5 and OpenCV 4 Computer Vision – ImageEditor (Plugin Mechanism – Rotating Images)

안녕하세요. 이번에는 이미지를 회전시키는 플러그인을 추가해 보도록 하겠습니다. 간편하게 rotate() 함수를 호출해서는 되지 않고 몇 가지 개념을 가지고 회전을 시켜야 했습니다. 1. 소스 코드 시작 전 1) 기하학적 변형(Geometric transformations) - 책 내용처럼 쉽게 생각해서 이미지만 회전시키면 되겠지 생각할 수 있지만, 조금 자료를 찾아보면 기하학이라는 좌표 개념과 수학적 지식이 필요했습니다. 간단하게 정의를 살펴보면, "영상의 기하학적 변형이란 화소의 위치를 변화하여 원 영상과는 다른 내용을 갖는 것을 말한다. 이러한 기하학적 변형에는 좌우 교환, 상하 교환, 평행 이동, 확대 및 축소, 회전 변형 등이 있다. 기하학적인 변형을 수학적으로 표현하기 위하여 변형되기 전의 화소..

Programming/Qt 2024.03.08

[도서 실습] Qt 5 and OpenCV 4 Computer Vision – ImageEditor (Plugin Mechanism – Cartoon)

안녕하세요. 이번에는 이미지를 만화처럼 보이게 하는 효과를 플러그인 기능으로 만들어 보도록 하겠습니다. 프로젝트 만드는 방법은 이전 Sharpen 내용과 동일하기 때문에 필요하다면 이전 내용을 참조하시면 됩니다. 그럼 새로운 라이브러리 프로젝트를 생성한 후 진행하시면 됩니다. 1. 소스 코드 시작 전 - 프로젝트명을 Cartoon_plugin으로 하고 클래스 이름은 CartoonPlugin으로 만드시면 됩니다. 그리고 CartoonPlugin::name() 함수와 CartoonPlugin::edit() 함수를 선언하고 정의하면 됩니다. - 우선 첫 번째 작업은 색상 팔레트를 축소시키는 것입니다. 그렇게 하기 위해서는 OpenCV 라이브러리에서 제공하는 bilateral filter를 사용합니다. 필터는 ..

Programming/Qt 2024.03.02

[도서 실습] Qt 5 and OpenCV 4 Computer Vision – ImageEditor (Plugin Mechanism – Sharpen)

안녕하세요. plugin을 만들고 설정하는데 어려움이 있었는데, 이제 기본 틀은 잡아 놓았으니, 이제 OpenCV의 기능을 간단하게 Plugin으로 만들 수 있습니다. 그리고 MainWindow에 dll 파일만 복사해 두면 기능이 나타나게 됩니다. 이번에는 Sharpen 기능입니다. 영상을 선명하게 하거나 에지를 검출하는 데 사용합니다. 1. Sharpen Filter - 명도가 변화하는 부분을 강조하여 이미지를 보다 선명하게 보정해 주는 필터입니다. - Sharpen 방법에는 2가지가 있습니다. 2차 미분을 사용하는 방법과 이미지 차이를 이용한 unsharp masking 방법입니다. 책 내용에서는 unsharp masking 방법을 이용해서 설명해주고 있습니다. 1) 미분을 이용하는 방법 - 수식 설..

Programming/Qt 2024.02.29

[도서 실습] Qt 5 and OpenCV 4 Computer Vision – ImageEditor (Plugin Mechanism – Erode - 2)

안녕하세요. 이전 내용에서 Plugin 인 DLL 파일로 Erode를 만들어 보았습니다. 이제 이 파일을 Mainwindow 프로그램에서 불러오는 것을 만들어 보도록 하겠습니다. 기존의 ImageEditor에 내용을 추가하는데 소스 입력하는 위치가 어려울 수 있는데 천천히 설명하도록 하겠습니다. 1. ImageEditor 프로젝트 수정 - ImageEditor.pro에 plugin interface 파일을 추가합니다. (editor_plugin_interface.h) # Input HEADERS += mainwindow.h \ editor_plugin_interface.h SOURCES += main.cpp mainwindow.cpp 2. Mainwindow.h에 내용 추가 - mainwindow.h에 ..

Programming/Qt 2024.02.24