From 00a21b7c4a13af2d426c9a98b91e9a2258c8a8e6 Mon Sep 17 00:00:00 2001 From: mattmcw Date: Sat, 30 Mar 2024 19:55:56 -0400 Subject: [PATCH] Create project (does not yet display image) --- .gitignore | 1 + CMakeLists.txt | 18 ++++ LICENSE | 21 ++++ README.md | 13 +++ chart.png | Bin 0 -> 68875 bytes cmake-modules/FindOpenCV.cmake | 173 +++++++++++++++++++++++++++++++++ compile.sh | 9 ++ main.cpp | 72 ++++++++++++++ 8 files changed, 307 insertions(+) create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 LICENSE create mode 100644 README.md create mode 100644 chart.png create mode 100644 cmake-modules/FindOpenCV.cmake create mode 100644 compile.sh create mode 100644 main.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c795b05 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +build \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..79f9e97 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,18 @@ +cmake_minimum_required(VERSION 3.9) + +project(OpengGL_OpenCV_Example) + +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_VERBOSE_MAKEFILE ON) +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules) + +find_package(OpenCV HINTS /usr/local/opt/opencv /usr/local/Cellar/opencv REQUIRED) + +set( NAME_SRC + main.cpp +) + +set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) +add_executable( opengl_opencv_example ${NAME_SRC} ${NAME_HEADERS} ) + +target_link_libraries(opengl_opencv_example GL GLU glut ${OpenCV_LIBS} ) \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..56d1176 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Matthew McWilliams + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e3cedf7 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# OpenGL + OpenCV Example + +Compile the project. + +```bash +bash compile.sh +``` + +Run the binary. + +```bash +./build/bin/opengl_opencv_example +``` diff --git a/chart.png b/chart.png new file mode 100644 index 0000000000000000000000000000000000000000..15dcaebe474ca8cce8fe9f39115d12aaee379c6d GIT binary patch literal 68875 zcmV*RKwiIzP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00007 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 z 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 is set to TRUE. +# +# This file will define the following variables: +# - OpenCV_LIBS : The list of libraries to link against. +# - OpenCV_LIB_DIR : The directory(es) where lib files are. Calling LINK_DIRECTORIES +# with this path is NOT needed. +# - OpenCV_INCLUDE_DIRS : The OpenCV include directories. +# - OpenCV_COMPUTE_CAPABILITIES : The version of compute capability +# - OpenCV_ANDROID_NATIVE_API_LEVEL : Minimum required level of Android API +# - OpenCV_VERSION : The version of this OpenCV build. Example: "2.4.0" +# - OpenCV_VERSION_MAJOR : Major version part of OpenCV_VERSION. Example: "2" +# - OpenCV_VERSION_MINOR : Minor version part of OpenCV_VERSION. Example: "4" +# - OpenCV_VERSION_PATCH : Patch version part of OpenCV_VERSION. Example: "0" +# +# Advanced variables: +# - OpenCV_SHARED +# - OpenCV_CONFIG_PATH +# - OpenCV_LIB_COMPONENTS +# +# =================================================================================== +# +# Windows pack specific options: +# - OpenCV_STATIC +# - OpenCV_CUDA + +if(CMAKE_VERSION VERSION_GREATER 2.6) + get_property(OpenCV_LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES) + if(NOT ";${OpenCV_LANGUAGES};" MATCHES ";CXX;") + enable_language(CXX) + endif() +endif() + +if(NOT DEFINED OpenCV_STATIC) + # look for global setting + if(BUILD_SHARED_LIBS) + set(OpenCV_STATIC OFF) + else() + set(OpenCV_STATIC ON) + endif() +endif() + +if(NOT DEFINED OpenCV_CUDA) + # if user' app uses CUDA, then it probably wants CUDA-enabled OpenCV binaries + if(CUDA_FOUND) + set(OpenCV_CUDA ON) + endif() +endif() + +if(MSVC) + if(CMAKE_CL_64) + set(OpenCV_ARCH x64) + set(OpenCV_TBB_ARCH intel64) + elseif((CMAKE_GENERATOR MATCHES "ARM") OR ("${arch_hint}" STREQUAL "ARM") OR (CMAKE_VS_EFFECTIVE_PLATFORMS MATCHES "ARM|arm")) + # see Modules/CmakeGenericSystem.cmake + set(OpenCV_ARCH ARM) + else() + set(OpenCV_ARCH x86) + set(OpenCV_TBB_ARCH ia32) + endif() + if(MSVC_VERSION EQUAL 1400) + set(OpenCV_RUNTIME vc8) + elseif(MSVC_VERSION EQUAL 1500) + set(OpenCV_RUNTIME vc9) + elseif(MSVC_VERSION EQUAL 1600) + set(OpenCV_RUNTIME vc10) + elseif(MSVC_VERSION EQUAL 1700) + set(OpenCV_RUNTIME vc11) + elseif(MSVC_VERSION EQUAL 1800) + set(OpenCV_RUNTIME vc12) + elseif(MSVC_VERSION EQUAL 1900) + set(OpenCV_RUNTIME vc14) + endif() +elseif(MINGW) + set(OpenCV_RUNTIME mingw) + + execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpmachine + OUTPUT_VARIABLE OPENCV_GCC_TARGET_MACHINE + OUTPUT_STRIP_TRAILING_WHITESPACE) + if(OPENCV_GCC_TARGET_MACHINE MATCHES "amd64|x86_64|AMD64") + set(MINGW64 1) + set(OpenCV_ARCH x64) + else() + set(OpenCV_ARCH x86) + endif() +endif() + +if(CMAKE_VERSION VERSION_GREATER 2.6.2) + unset(OpenCV_CONFIG_PATH CACHE) +endif() + +if(NOT OpenCV_FIND_QUIETLY) + message(STATUS "OpenCV ARCH: ${OpenCV_ARCH}") + message(STATUS "OpenCV RUNTIME: ${OpenCV_RUNTIME}") + message(STATUS "OpenCV STATIC: ${OpenCV_STATIC}") +endif() + +get_filename_component(OpenCV_CONFIG_PATH "${CMAKE_CURRENT_LIST_FILE}" PATH CACHE) +if(OpenCV_RUNTIME AND OpenCV_ARCH) + if(OpenCV_STATIC AND EXISTS "${OpenCV_CONFIG_PATH}/${OpenCV_ARCH}/${OpenCV_RUNTIME}/staticlib/OpenCVConfig.cmake") + if(OpenCV_CUDA AND EXISTS "${OpenCV_CONFIG_PATH}/gpu/${OpenCV_ARCH}/${OpenCV_RUNTIME}/staticlib/OpenCVConfig.cmake") + set(OpenCV_LIB_PATH "${OpenCV_CONFIG_PATH}/gpu/${OpenCV_ARCH}/${OpenCV_RUNTIME}/staticlib") + else() + set(OpenCV_LIB_PATH "${OpenCV_CONFIG_PATH}/${OpenCV_ARCH}/${OpenCV_RUNTIME}/staticlib") + endif() + elseif(EXISTS "${OpenCV_CONFIG_PATH}/${OpenCV_ARCH}/${OpenCV_RUNTIME}/lib/OpenCVConfig.cmake") + if(OpenCV_CUDA AND EXISTS "${OpenCV_CONFIG_PATH}/gpu/${OpenCV_ARCH}/${OpenCV_RUNTIME}/lib/OpenCVConfig.cmake") + set(OpenCV_LIB_PATH "${OpenCV_CONFIG_PATH}/gpu/${OpenCV_ARCH}/${OpenCV_RUNTIME}/lib") + else() + set(OpenCV_LIB_PATH "${OpenCV_CONFIG_PATH}/${OpenCV_ARCH}/${OpenCV_RUNTIME}/lib") + endif() + endif() +endif() + +if(OpenCV_LIB_PATH AND EXISTS "${OpenCV_LIB_PATH}/OpenCVConfig.cmake") + set(OpenCV_LIB_DIR_OPT "${OpenCV_LIB_PATH}" CACHE PATH "Path where release OpenCV libraries are located" FORCE) + set(OpenCV_LIB_DIR_DBG "${OpenCV_LIB_PATH}" CACHE PATH "Path where debug OpenCV libraries are located" FORCE) + set(OpenCV_3RDPARTY_LIB_DIR_OPT "${OpenCV_LIB_PATH}" CACHE PATH "Path where release 3rdparty OpenCV dependencies are located" FORCE) + set(OpenCV_3RDPARTY_LIB_DIR_DBG "${OpenCV_LIB_PATH}" CACHE PATH "Path where debug 3rdparty OpenCV dependencies are located" FORCE) + + include("${OpenCV_LIB_PATH}/OpenCVConfig.cmake") + + if(OpenCV_CUDA) + set(_OpenCV_LIBS "") + foreach(_lib ${OpenCV_LIBS}) + string(REPLACE "${OpenCV_CONFIG_PATH}/gpu/${OpenCV_ARCH}/${OpenCV_RUNTIME}" "${OpenCV_CONFIG_PATH}/${OpenCV_ARCH}/${OpenCV_RUNTIME}" _lib2 "${_lib}") + if(NOT EXISTS "${_lib}" AND EXISTS "${_lib2}") + list(APPEND _OpenCV_LIBS "${_lib2}") + else() + list(APPEND _OpenCV_LIBS "${_lib}") + endif() + endforeach() + set(OpenCV_LIBS ${_OpenCV_LIBS}) + endif() + set(OpenCV_FOUND TRUE CACHE BOOL "" FORCE) + set(OPENCV_FOUND TRUE CACHE BOOL "" FORCE) + + if(NOT OpenCV_FIND_QUIETLY) + message(STATUS "Found OpenCV ${OpenCV_VERSION} in ${OpenCV_LIB_PATH}") + if(NOT OpenCV_LIB_PATH MATCHES "/staticlib") + get_filename_component(_OpenCV_LIB_PATH "${OpenCV_LIB_PATH}/../bin" ABSOLUTE) + file(TO_NATIVE_PATH "${_OpenCV_LIB_PATH}" _OpenCV_LIB_PATH) + message(STATUS "You might need to add ${_OpenCV_LIB_PATH} to your PATH to be able to run your applications.") + if(OpenCV_LIB_PATH MATCHES "/gpu/") + string(REPLACE "\\gpu" "" _OpenCV_LIB_PATH2 "${_OpenCV_LIB_PATH}") + message(STATUS "GPU support is enabled so you might also need ${_OpenCV_LIB_PATH2} in your PATH (it must go after the ${_OpenCV_LIB_PATH}).") + endif() + endif() + endif() +else() + if(NOT OpenCV_FIND_QUIETLY) + message(WARNING +"Found OpenCV Windows Pack but it has no binaries compatible with your configuration. +You should manually point CMake variable OpenCV_DIR to your build of OpenCV library." + ) + endif() + set(OpenCV_FOUND FALSE CACHE BOOL "" FORCE) + set(OPENCV_FOUND FALSE CACHE BOOL "" FORCE) +endif() \ No newline at end of file diff --git a/compile.sh b/compile.sh new file mode 100644 index 0000000..d22d9b6 --- /dev/null +++ b/compile.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +#gcc -o opengl_example main.cpp -lGL -lGLU -lglut -lm + +rm -rf build +mkdir -p build +cd build +cmake .. +make -j4 \ No newline at end of file diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..50ede5c --- /dev/null +++ b/main.cpp @@ -0,0 +1,72 @@ +#include +#include +#include +#include +#include + +#include + +#include +#include + +using namespace cv; +using namespace std; + +Mat image; +GLuint imageTexture; + +void displayMe(void) +{ + glClearColor(0.0f, 0.0f, 0.0f, 1.0f); + glClear(GL_COLOR_BUFFER_BIT); + glTexImage2D( GL_TEXTURE_2D, // Type of texture + 0, // Pyramid level (for mip-mapping) - 0 is the top level + GL_RGB, // Internal colour format to convert to + image.cols, // Image width i.e. 640 for Kinect in standard mode + image.rows, // Image height i.e. 480 for Kinect in standard mode + 0, // Border width in pixels (can either be 1 or 0) + GL_RGB, // Input image format (i.e. GL_RGB, GL_RGBA, GL_BGR etc.) + GL_UNSIGNED_BYTE, // Image data type + image.ptr()); // The actual image data itself + glEnd(); + glFlush(); +} + +int main(int argc, char** argv) +{ + string image_path = samples::findFile("chart.png"); + Mat image = imread(image_path, IMREAD_COLOR); + + glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + glGenTextures(1, &imageTexture); + glBindTexture(GL_TEXTURE_2D, imageTexture); + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + + // Set texture clamping method + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); + +#if (CV_VERSION_MAJOR >= 4) + cvtColor(image, image, cv::COLOR_BGR2RGB); +#else + cvtColor(image, image, CV_BGR2RGB); +#endif + + //GLint dims[4] = {0}; + //glGetIntegerv(GL_VIEWPORT, dims); + //GLint fbWidth = dims[2]; + //GLint fbHeight = dims[3]; + //cout << fbWidth << "," << fbHeight << endl; + glutInit(&argc, argv); + glutInitDisplayMode(GLUT_SINGLE); + glutInitWindowSize(1920, 1080); + glutInitWindowPosition(0, 0); + glutCreateWindow("Hello world!"); + glutFullScreen(); + + glutDisplayFunc(displayMe); + glutMainLoop(); + return 0; +} \ No newline at end of file