plugins 5

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

안녕하세요. 이미지 에디터 마지막 내용으로 Affine 함수를 사용해보려고 합니다. 이전에 이미지를 회전해 보았다면, 이제는 이지를 약간 틀어져 보이게 해 보겠습니다. 표현이 맞을지 모르겠으나, 평면의 이미지를 약간 입체적으로 보이는 느낌으로 만든다라고 할까요. ^^ 1. 소스 코드 시작 전 1) 아핀 변환(Affine Transformation) 선형 변환에 이동 변환까지 포함된 변환입니다. 선의 수평성을 유지하며, 변환 전의 서로 평행한 선은 변환 후에도 평행함을 의미합니다. 즉, 길이의 비와 평행성이 보존되는 변환입니다. 사각형을 평행사변형으로 변환하는 것을 아핀 변환으로 간주합니다. 아핀 변환은 점 사이의 거리 비율뿐만 아니라 선의 수평성을 유지하는 모든 변환입니다. (예: 선의 중간점이 변환 후..

Programming/Qt 2024.03.13

[도서 실습] 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