From 1485074fdccd0f25f036f62957ce7ac04abd91b9 Mon Sep 17 00:00:00 2001 From: ZhaoJiaLiang Date: Sun, 11 Aug 2019 20:27:34 +0800 Subject: [PATCH 1/3] 1. create a branch for mac native develop, leave master branch for python; \n 2. create build.sh and modify CMakeLists file for auto compile --- .gitignore | 3 +++ .vscode/c_cpp_properties.json | 20 ++++++++++++++++++++ CMakeLists.txt | 5 ++++- build.sh | 6 ++++++ 4 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 .vscode/c_cpp_properties.json create mode 100755 build.sh diff --git a/.gitignore b/.gitignore index 74ae0aa..58adb83 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,6 @@ /CMakeCache.txt /DisplayImage /cmake_install.cmake +/output +/bin +/build \ No newline at end of file diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..655c016 --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,20 @@ +{ + "configurations": [ + { + "name": "Mac", + "includePath": [ + "${workspaceFolder}/**", + "/usr/local/include/opencv4/**" + ], + "defines": [], + "macFrameworkPath": [ + "/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks" + ], + "compilerPath": "/usr/bin/clang", + "cStandard": "c11", + "cppStandard": "c++17", + "intelliSenseMode": "clang-x64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 22db4d4..a80c47e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,9 +4,12 @@ set (CMAKE_CXX_STANDARD 11) find_package(OpenCV REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) -add_executable(VideoPlayer Tutorial.cpp) +add_executable(VideoPlayer VideoPlayer.cpp) target_link_libraries(VideoPlayer ${OpenCV_LIBS}) add_executable(DisplayImage DisplayImage.cpp) target_link_libraries(DisplayImage ${OpenCV_LIBS}) +install (TARGETS VideoPlayer DESTINATION bin) +install (TARGETS DisplayImage DESTINATION bin) + diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..f84162b --- /dev/null +++ b/build.sh @@ -0,0 +1,6 @@ +mkdir output +mkdir build +cd build +## cmake -DCMAKE_INSTALL_PREFIX:PATH=../output .. +cmake .. +cmake --build . --target install --config Release \ No newline at end of file From ebd62facd9176e555cf2891b971f0bf5337d4268 Mon Sep 17 00:00:00 2001 From: ZhaoJiaLiang Date: Sun, 11 Aug 2019 20:31:48 +0800 Subject: [PATCH 2/3] delete python project --- OpenCvPythonDemo/Test.py | 16 --------- OpenCvPythonDemo/record_video.py | 59 -------------------------------- OpenCvPythonDemo/res-change.py | 42 ----------------------- 3 files changed, 117 deletions(-) delete mode 100644 OpenCvPythonDemo/Test.py delete mode 100644 OpenCvPythonDemo/record_video.py delete mode 100644 OpenCvPythonDemo/res-change.py diff --git a/OpenCvPythonDemo/Test.py b/OpenCvPythonDemo/Test.py deleted file mode 100644 index e044ff1..0000000 --- a/OpenCvPythonDemo/Test.py +++ /dev/null @@ -1,16 +0,0 @@ -import numpy as np -import cv2 - -cap = cv2.VideoCapture(0) - -while True: - ret, frame = cap.read() - - gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) - - cv2.imshow('frame', frame) - cv2.imshow('gray', gray) - cv2.imshow('frame2', frame) - cv2.imshow('frame3', frame) - if cv2.waitKey(20) & 0xFF == ord('q'): - break \ No newline at end of file diff --git a/OpenCvPythonDemo/record_video.py b/OpenCvPythonDemo/record_video.py deleted file mode 100644 index ed777e6..0000000 --- a/OpenCvPythonDemo/record_video.py +++ /dev/null @@ -1,59 +0,0 @@ -import os -import numpy as np -import cv2 - - -filename = 'video.avi' -frames_per_seconds = 24.0 -my_res = '720p' #1080p - -def change_res(cap, width, height): - cap.set(3, width) - cap.set(4, height) - -STD_DIMENSION = { - "480p" : (640, 480), - "720p" : (1280, 720), - "1080p" : (1920, 1080), - "4K": (3340, 2160), -} - -def get_dims(cap, res='1080p'): - width, height = STD_DIMENSION['480p'] - if res in STD_DIMENSION: - width, height = STD_DIMENSION[res] - change_res(cap, width, height) - return width, height - -VIDEO_TYPE = { - 'avi': cv2.VideoWriter_fourcc('M','J','P','G'), - 'mp4': cv2.VideoWriter_fourcc(*'XVID'), - # 'avi': cv2.VideoWriter_fourcc(*'XVID'), -} - -def get_video_type(filename) : - filename, ext = os.path.splitext(filename) - if ext in VIDEO_TYPE: - return VIDEO_TYPE[ext] - return VIDEO_TYPE['avi'] - -cap = cv2.VideoCapture(0) -dims = get_dims(cap, res=my_res) -vidoe_type_cv2 = get_video_type(filename) - -out = cv2.VideoWriter(filename, vidoe_type_cv2, frames_per_seconds, dims) -print ("this is a tuple: %s" %(dims,)) - -change_res(cap, dims[0], dims[1]) - -while(True): - ret, frame = cap.read() - out.write(frame) - - cv2.imshow('frame', frame) - if cv2.waitKey(20) & 0xFF == ord('q'): - break - -cap.release() -out.release() -cv2.destroyAllWindows() \ No newline at end of file diff --git a/OpenCvPythonDemo/res-change.py b/OpenCvPythonDemo/res-change.py deleted file mode 100644 index 60599c9..0000000 --- a/OpenCvPythonDemo/res-change.py +++ /dev/null @@ -1,42 +0,0 @@ -import numpy as np -import cv2 - -cap = cv2.VideoCapture(0) - -def make_1080p(): - cap.set(3, 1928) - cap.set(4, 1080) - -def make_720p(): - cap.set(3, 1280) - cap.set(4, 720) - -def make_480p(): - cap.set(3, 640) - cap.set(4, 480) - -def change_res(width, height): - cap.set(3, width) - cap.set(4, height) - -def rescale_frame(frame, percent=75): - scale_percent = 75 - width = int(frame.shape[1] * scale_percent / 100) - height = int(frame.shape[0] * scale_percent / 100) - dim = (width, height) - return cv2.resize(frame, dim, interpolation = cv2.INTER_AREA) - -change_res(4000, 2000) - -while(True): - ret, frame = cap.read() - frame = rescale_frame(frame, percent=30) - cv2.imshow('frame', frame) - - frame2 = rescale_frame(frame, percent=140) - cv2.imshow('frame2', frame2) - if cv2.waitKey(20) & 0xFF == ord('q'): - break - -cap.release() -cv2.destroyAllWindows() \ No newline at end of file From bcefab2346a93a7bce684cb327111b3513b222ef Mon Sep 17 00:00:00 2001 From: ZhaoJiaLiang Date: Mon, 12 Aug 2019 07:44:09 +0800 Subject: [PATCH 3/3] config a out of source build style --- build.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.sh b/build.sh index f84162b..2f27033 100755 --- a/build.sh +++ b/build.sh @@ -1,6 +1,5 @@ -mkdir output mkdir build cd build -## cmake -DCMAKE_INSTALL_PREFIX:PATH=../output .. +## cmake -DCMAKE_INSTALL_PREFIX:PATH=../build/bin .. cmake .. cmake --build . --target install --config Release \ No newline at end of file