商城网站流程,学做点心的网站,哪里有国内网站建设公司,邢台市网站建设imread命令将返回以蓝色、绿色和红色#xff08;BGR格式#xff09;开头的三个通道 处理视频的main函数中需要做的第一件事是创建VideoCapture对象。 GPU CUDA模块中的函数都定义在cv::cuda命名空间中#xff0c;将设备上配置给图像数据用的显存块作为其参数。 gettickcount…imread命令将返回以蓝色、绿色和红色BGR格式开头的三个通道 处理视频的main函数中需要做的第一件事是创建VideoCapture对象。 GPU CUDA模块中的函数都定义在cv::cuda命名空间中将设备上配置给图像数据用的显存块作为其参数。 gettickcount函数返回启动系统后经过的时间以毫秒为单位 使用具有CUDA的opencv进行阈值滤波
#include iostream
#include opencv2/opencv.hpp
int main (int argc, char* argv[])
{cv::Mat h_img1 cv::imread(images/cameraman.tif, 0);
cv::cuda::GpuMat d_result1,d_result2,d_result3,d_result4,d_result5, d_img1;
//Measure initial time ticks
int64 work_begin cv::getTickCount();
d_img1.upload(h_img1);
cv::cuda::threshold(d_img1, d_result1, 128.0, 255.0, cv::THRESH_BINARY);
cv::cuda::threshold(d_img1, d_result2, 128.0, 255.0, cv::THRESH_BINARY_INV);
cv::cuda::threshold(d_img1, d_result3, 128.0, 255.0, cv::THRESH_TRUNC);
cv::cuda::threshold(d_img1, d_result4, 128.0, 255.0, cv::THRESH_TOZERO);
cv::cuda::threshold(d_img1, d_result5, 128.0, 255.0, cv::THRESH_TOZERO_INV);
cv::Mat h_result1,h_result2,h_result3,h_result4,h_result5;
d_result1.download(h_result1);
d_result2.download(h_result2);
d_result3.download(h_result3);
d_result4.download(h_result4);
d_result5.download(h_result5);
//Measure difference in time ticks
int64 delta cv::getTickCount() - work_begin;
double freq cv::getTickFrequency();
//Measure frames per second
double work_fps freq / delta;
std::cout Performance of Thresholding on GPU: std::endl;
std::cout Time: (1/work_fps) std::endl;
std::cout FPS: work_fps std::endl;return 0;
}使用cudaopencv修改图像大小
#include iostream
#include opencv2/opencv.hpp
#include iostream
#include opencv2/opencv.hpp
int main ()
{cv::Mat h_img1 cv::imread(images/cameraman.tif,0);cv::cuda::GpuMat d_img1,d_result1,d_result2;d_img1.upload(h_img1);int width d_img1.cols;int height d_img1.size().height;cv::cuda::resize(d_img1,d_result1,cv::Size(200, 200), cv::INTER_CUBIC);cv::cuda::resize(d_img1,d_result2,cv::Size(0.5*width, 0.5*height), cv::INTER_LINEAR); cv::Mat h_result1,h_result2;d_result1.download(h_result1);d_result2.download(h_result2);cv::imshow(Original Image , h_img1);cv::imshow(Resized Image, h_result1);cv::imshow(Resized Image 2, h_result2);cv::imwrite(Resized1.png, h_result1);cv::imwrite(Resized2.png, h_result2);cv::waitKey();return 0;
}使用HARR进行人脸检测
#include iostream
#include opencv2/opencv.hpp
using namespace cv;
using namespace std;
int main()
{VideoCapture cap(0);if (!cap.isOpened()) {cerr Can not open video source;return -1;}std::vectorcv::Rect h_found;cv::Ptrcv::cuda::CascadeClassifier cascade cv::cuda::CascadeClassifier::create(haarcascade_frontalface_alt2.xml);cv::cuda::GpuMat d_frame, d_gray, d_found;while(1){Mat frame;if ( !cap.read(frame) ) {cerr Can not read frame from webcam;return -1;}d_frame.upload(frame);cv::cuda::cvtColor(d_frame, d_gray, cv::COLOR_BGR2GRAY);cascade-detectMultiScale(d_gray, d_found);cascade-convert(d_found, h_found);for(int i 0; i h_found.size(); i){rectangle(frame, h_found[i], Scalar(0,255,255), 5);}imshow(Result, frame);if (waitKey(1) q) {break;}}return 0;
}总结
本教程是自己学习CUDA所遇到的一些概念与总结由于CUDA主要是一个应用还是以代码为主加速算法与硬件息息相关干了很久深度学习了对于硬件的知识已经遗忘很多后续还是复习一些硬件知识后再继续深入吧。