VisualStudio2019 + OpenCV4.5.0 + CUDA10.1 + VideoCodecSDK10.0 のサンプルコード確認
サンプル
- サンプルコード
- E:/Program/OpenCV/opencv/sources/samples
- サンプルデータ
- E:/Program/OpenCV/opencv/sources/samples/data
- 以下にコピー
- E:/Program/OpenCV/build/modules
- E:/Program/OpenCV/build/samples
- 以下にコピー
- E:/Program/OpenCV/opencv/sources/samples/data
/gpu
alpha_comp.cpp
- アルファ合成
- #include "opencv2/cudaimgproc.hpp"
- cv::cuda::alphaComp
- #include "opencv2/cudaimgproc.hpp"
bgfg_segm.cpp
- 動画の読み込み
- #include "opencv2/video.hpp"
- cv::VideoCapture cap
- #include "opencv2/video.hpp"
- 背景差分
- #include "opencv2/cudabgsegm.hpp"
- cv::cuda::createBackgroundSubtractorMOG
- cv::cuda::createBackgroundSubtractorMOG2
- mog->apply(d_frame, d_fgmask, 0.01)
- 動画から黒背景、白動体を出力する
- mog->getBackgroundImage(d_bgimg)
- 動画から動体を除く背景を出力する
- d_frame.copyTo(d_fgimg, d_fgmask)
- 動画から動体を切り出し出力する
- #include "opencv2/cudabgsegm.hpp"
cascadeclassifier.cpp
- コマンドライン引数
- --cascade E:/Program/OpenCV/opencv/sources/data/haarcascades_cuda/haarcascade_frontalface_alt.xml E:/Program/OpenCV/opencv/sources/samples/winrt/FaceDetection/FaceDetection/Assets/group1.jpg
- 顔認識
- #include "opencv2/cudaobjdetect.hpp"
- cv::cuda::CascadeClassifier
- #include "opencv2/cudaobjdetect.hpp"
farneback_optical_flow.cpp
- フレーム間の動体の移動量
- #include "opencv2/cudaoptflow.hpp"
- cv::cuda::FarnebackOpticalFlow
- #include "opencv2/cudaoptflow.hpp"
- GpuMatの配列(InputOutputArray)を分割する
- #include "opencv2/cudaarithm.hpp"
- cv::cuda::split
- #include "opencv2/cudaarithm.hpp"
generalized_hough.cpp
- E:/Program/OpenCV/opencv/sources/samples/data/templ.png
- 以下にコピー
- E:/Program/OpenCV/build/samples/gpu
- 以下にコピー
- コマンドライン引数
- --gpu --votesThreshold=200
- 汎用化ハフ変換を使用して任意のオブジェクトを検索する
- #include "opencv2/cudaimgproc.hpp"
- cv::cuda::createGeneralizedHoughBallard
- cv::cuda::createGeneralizedHoughGuil
- #include "opencv2/cudaimgproc.hpp"
hog.cpp
- コマンドライン引数
- --video ../data/vtest.avi
- 動体検知
- #include "opencv2/cudaobjdetect.hpp"
- cv::cuda::HOG
- #include "opencv2/cudaobjdetect.hpp"
houghlines.cpp
- エッジ検出
- #include "opencv2/imgproc.hpp"
- cv::Canny
- #include "opencv2/imgproc.hpp"
- ハフ変換を使用したライン検出
- #include "opencv2/cudaimgproc.hpp"
- cv::cuda::createHoughSegmentDetector
- #include "opencv2/cudaimgproc.hpp"
morphology.cpp
- 画像の膨張・収縮によるノイズ除去
- #include "opencv2/cudafilters.hpp"
- cv::cuda::createMorphologyFilter
- #include "opencv2/cudafilters.hpp"
multi.cpp
- マルチCUDAデバイス
- 環境なし
pyrlk_optical_flow.cpp
- コマンドライン引数
- --left=../data/basketball1.png --right=../data/basketball2.png
- 特徴点検出
-
#include <opencv2/cudaimgproc.hpp>
- cv::cuda::createGoodFeaturesToTrackDetector
-
- Lucas-Kanade法を用いたフレーム間の動体の移動量
-
#include <opencv2/cudaoptflow.hpp>
- cv::cuda::SparsePyrLKOpticalFlow
- cv::cuda::DensePyrLKOpticalFlow
-
stereo_match.cpp
- コマンドライン引数
- --left ../data/aloeL.jpg --right ../data/aloeR.jpg --ndisp 120
- 視差画像を用いた奥行き推定
- #include "opencv2/cudastereo.hpp"
- cv::cuda::StereoBM
- cv::cuda::StereoBeliefPropagation
- cv::cuda::StereoConstantSpaceBP
- #include "opencv2/cudastereo.hpp"
stereo_multi.cpp
- コマンドライン引数
- ../data/aloeL.jpg ../data/aloeR.jpg
- マルチCUDAデバイス
- 環境なし
super_resolution.cpp
- コマンドライン引数
- --video=../data/vtest.avi --output=../data/vout.avi --gpu=cuda
- 入力信号の解像度を高めて出力信号を作る
- #include "opencv2/superres/optical_flow.hpp"
- cv::superres::createOptFlow_Farneback_CUDA
- cv::superres::createOptFlow_DualTVL1_CUDA
- cv::superres::createOptFlow_Brox_CUDA
- cv::superres::createOptFlow_PyrLK_CUDA
- #include "opencv2/superres.hpp"
- cv::superres::createSuperResolution_BTVL1_CUDA
- cv::superres::createFrameSource_Video_CUDA
- 1フレーム目:106sec
- 以降:18sec
- #include "opencv2/superres/optical_flow.hpp"
surf_keypoint_matcher.cpp
- コマンドライン引数
- --left ../data/box.png --right ../data/box_in_scene.png
- 二枚の画像の特徴点のマッチング
- #include "opencv2/cudafeatures2d.hpp"
- cv::cuda::DescriptorMatcher::createBFMatcher
- #include "opencv2/cudafeatures2d.hpp"
video_reader.cpp
- コマンドライン引数
- ../data/Megamind.avi
- 動画の読み込み
-
#include <opencv2/cudacodec.hpp>
- cv::cudacodec::createVideoReader
-
video_writer.cpp
- コマンドライン引数
- ../data/Megamind.avi
- エラー
-
E:/Program/OpenCV/opencv_contrib-4.5.0/modules/cudacodec/src/video_writer.cpp
#if !defined(HAVE_NVCUVENC) || !defined(_WIN32)
OpenCV(4.5.0) E:\Program\OpenCV\opencv\sources\modules\core\include\opencv2/core/private.cuda.hpp:112: error: (-213:The function/feature is not implemented) The called functionality is disabled for current build or platform in function 'throw_no_cuda'
-
https://github.com/opencv/opencv/issues/18271
-
https://github.com/opencv/opencv_contrib/pull/2180
- 4.1.0以降対応されていない?
-
https://github.com/opencv/opencv_contrib/pull/2180
-
/cpp/tutorial_code/gpu
gpu-basics-similarity.cpp
- コマンドライン引数
- ../data/basketball1.png ../data/basketball2.png 10
- 画質評価
- PSNR(Peak signal-to-noise ratio)
- CPU
- CUDA
- CUDA(GpuMat再利用)
- SSIM(Structural Similarity)
- CPU
- CUDA
- CUDA(GpuMat再利用)
- PSNR(Peak signal-to-noise ratio)