Opencv使用cuda實現圖像處理

main.py

import os
import cv2
print(f'OpenCV: {cv2.__version__} for python installed and working')
image = cv2.imread('bus.jpg')
if image is None:print("無法加載圖像1")
print(cv2.cuda.getCudaEnabledDeviceCount())
cv2.cuda.setDevice(0)
cv2.cuda.printCudaDeviceInfo(0)
image_gpu = cv2.cuda_GpuMat()
image_gpu.upload(image)
screenshot = cv2.cuda.cvtColor(image_gpu, cv2.COLOR_RGB2BGR)
screenshot = cv2.cuda.resize(image_gpu, (400, 400))
result_cpu = screenshot.download()
print("圖像寬度: ", image.shape)
print("數據類型:", image.dtype)
print("在CPU下,原始圖像格式:", type(image))
print("在GPU下,處理后的圖像格式:", type(screenshot))
print("在CPU下,處理后的圖像格式:", type(result_cpu))
print("圖像寬度: ", result_cpu.shape)
print("數據類型:", result_cpu.dtype)
if result_cpu is None:print("無法加載圖像2")
else:cv2.imshow("Window", result_cpu)cv2.waitKey(0)cv2.destroyAllWindows()

main.cpp

#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/cudaimgproc.hpp>
int main(int argc, char* argv[])
{cv::Mat h_img1 = cv::imread("bus.jpg");cv::cuda::GpuMat d_result1, d_result2, d_result3, d_result4, d_img1;d_img1.upload(h_img1);cv::cuda::cvtColor(d_img1, d_result1, cv::COLOR_BGR2GRAY);cv::cuda::cvtColor(d_img1, d_result2, cv::COLOR_BGR2RGB);cv::cuda::cvtColor(d_img1, d_result3, cv::COLOR_BGR2HSV);cv::cuda::cvtColor(d_img1, d_result4, cv::COLOR_BGR2YCrCb);cv::Mat h_result1, h_result2, h_result3, h_result4;d_result1.download(h_result1);d_result2.download(h_result2);d_result3.download(h_result3);d_result4.download(h_result4);cv::imshow("Gray處理結果:", h_result1);cv::imshow("RGB處理結果:", h_result2);cv::imshow("HSV處理結果:", h_result3);cv::imshow("YCrCb處理結果:", h_result4);cv::waitKey(0);return 0;
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.10)
project(OpenCVCuda LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set("OpenCV_DIR" "E:\\Opencv gpu\\newbuild\\install")
set(OpenCV_INCLUDE_DIRS ${OpenCV_DIR}\\include)
set(OpenCV_LIB_DEBUG ${OpenCV_DIR}\\x64\\vc17\\lib\\opencv_world470d.lib) 
set(OpenCV_LIB_RELEASE ${OpenCV_DIR}\\x64\\vc17\\lib\\opencv_world470.lib)   
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CUDA_ARCHITECTURES 86)		
find_package(CUDA REQUIRED)			
enable_language(CUDA)  
include_directories(${OpenCV_INCLUDE_DIRS}) 
link_directories(${OpenCV_LIB_DIRS})  
find_package(OpenCV QUIET)	
link_libraries(${OpenCV_LIBS})
add_executable(OpenCVCuda main.cpp)
target_link_libraries(${PROJECT_NAME} $<$<CONFIG:Debug>:${OpenCV_LIB_DEBUG}>$<$<CONFIG:Release>:${OpenCV_LIB_RELEASE}>
)
target_compile_features(OpenCVCuda PRIVATE cxx_std_14)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/77166.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77166.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/77166.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何編制實施項目管理章程

本文檔概述了一個項目管理系統的實施計劃,旨在通過統一的業務規范和技術架構,加強集團公司的業務管控,并規范業務管理。系統建設將遵循集團統一模板,確保各單位項目系統建設的標準化和一致性。 實施范圍涵蓋投資管理、立項管理、設計管理、進度管理等多個方面,支持項目全生…

B端可視化方案,如何助力企業精準決策,搶占市場先機

在當今競爭激烈的商業環境中&#xff0c;企業需要快速、準確地做出決策以搶占市場先機。B端可視化方案通過將復雜的企業數據轉化為直觀的圖表和儀表盤&#xff0c;幫助企業管理層和業務人員快速理解數據背后的業務邏輯&#xff0c;從而做出精準決策。本文將深入探討B端可視化方…

基于FPGA的一維時間序列idct變換verilog實現,包含testbench和matlab輔助驗證程序

目錄 1.算法運行效果圖預覽 2.算法運行軟件版本 3.部分核心程序 4.算法理論概述 4.1 DCT離散余弦變換 4.2 IDCT逆離散余弦變換 4.3 樹結構實現1024點IDCT的原理 5.算法完整程序工程 1.算法運行效果圖預覽 (完整程序運行后無水印) matlab仿真結果 FPGA仿真結果 由于FP…

Android基礎教程 - 學習完成記錄

視頻學習教程 視頻鏈接&#xff1a;2022 最新 Android 基礎教程&#xff0c;從開發入門到項目實戰&#xff0c;看它就夠了&#xff0c;更新中_嗶哩嗶哩_bilibili 學習下來&#xff0c;有遇到很多問題&#xff0c;在 chatgpt、claude 和 Android Studio 插件通義千問的幫助下&…

Web開發-JavaEE應用原生和FastJson反序列化URLDNS鏈JDBC鏈Gadget手搓

知識點&#xff1a; 1、安全開發-JavaEE-原生序列化-URLDNS鏈分析 2、安全開發-JavaEE-FastJson-JdbcRowSetImpl鏈分析 利用鏈也叫"gadget chains"&#xff0c;我們通常稱為gadget&#xff1a; 1、共同條件&#xff1a;實現Serializable或者Externalizable接口&…

OpenCV操作函數

1、cv2.imread&#xff08;&#xff09; 2、 cv2.imshow&#xff08;&#xff09; 3、 cv2.waitKey&#xff08;&#xff09; 4、cv2.imwrite&#xff08;&#xff09; 5、cv2.selectROI&#xff08;&#xff09; 6、 cv2.VideoCapture() 7、cv2.cvtColor&#xff08;&#xff…

AI編程新紀元:GitHub Copilot、CodeGeeX與VS2022的聯合開發實踐

引言:AI編程時代的到來 在軟件開發領域,我們正站在一個歷史性的轉折點上。GitHub Copilot、CodeGeeX等AI編程助手的出現,結合Visual Studio 2022的強大功能,正在重塑代碼編寫的本質。這不僅是工具層面的革新,更是開發范式的根本轉變。能夠有效利用這些AI工具的開發者將跨…

[特殊字符] MySQL MCP 開發實戰:打造智能數據庫操作助手

&#x1f4a1; 簡介&#xff1a;本文詳細介紹如何利用MCP&#xff08;Model-Control-Panel&#xff09;框架開發MySQL數據庫操作工具&#xff0c;使AI助手能夠直接執行數據庫操作。 &#x1f4da; 目錄 引言MCP框架簡介項目架構設計開發環境搭建核心代碼實現錯誤處理策略運行和…

Dify部署過程中的錯誤和解決方案匯總

本文僅限于記錄Dify部署及使用過程中的BUG和解決方案 1. Dify配置SearXNG時報錯&#xff1a; 報錯內容&#xff1a; PluginInvokeError: {"args":{},"error_type":"ToolProviderCredentialValidationError","message":"Error 4…

C#中async await異步關鍵字用法和異步的底層原理

目錄 C#異步編程一、異步編程基礎二、異步方法的工作原理三、代碼示例四、編譯后的底層實現五、總結 C#異步編程 一、異步編程基礎 異步編程是啥玩意兒 就是讓程序在干等著某些耗時操作&#xff08;比如等網絡響應、讀寫文件啥的&#xff09;的時候&#xff0c;能把線程騰出來…

安全教育知識競賽答題小程序怎么做

以下是制作安全教育知識競賽答題小程序的一般步驟&#xff1a; 一、準備階段 注冊小程序賬號&#xff1a;前往微信公眾平臺&#xff0c;注冊一個小程序賬號&#xff0c;主體類型可根據實際情況選擇個人或企業等&#xff0c;注冊成功后登錄獲取appid。 下載安裝開發工具&#x…

記錄待辦事項的便簽軟件有沒有推薦的?

在快節奏的現代生活中&#xff0c;我們每天都要處理大量的工作任務和生活瑣事&#xff0c;稍有不慎就可能遺漏重要事項。你是否經常遇到這樣的情況&#xff1a;明明記得有件事要做&#xff0c;卻怎么也想不起來是什么&#xff1b;或者手頭同時有好幾項任務&#xff0c;卻不知道…

實驗四 中斷實驗

一、實驗目的 掌握中斷服務程序的編寫。 二、實驗電路 三、實驗內容 1&#xff0e;實驗用PC機內部的中斷控制器8259A&#xff0c;中斷源用TPC-ZK實驗箱上的單脈沖電路&#xff0c;將單脈沖電路的輸出接中斷請求信號IRQ&#xff0c;每按一次單脈沖按鍵產生一次…

React 項目src文件結構

SCSS 組件庫 SCSS為預處理器 支持除原生CSS外的其他語句 別名路徑 在項目下的第一級目錄就加入craco.config.js文件并且修改packpage.js 中的部分 // 擴展webpage的配置const path require(path)module.exports {// exports配置webpack:{// 配置別名alias:{:path.resolve(__d…

Cursor入門教程-JetBrains過度向

Cursor使用筆記 **前置&#xff1a;**之前博主使用的是JetBrains的IDE&#xff0c;VSCode使用比較少&#xff0c;所以會盡量朝著JetBrains的使用習慣及樣式去調整。 一、設置語言為中文 如果剛上手Cursor&#xff0c;那么肯定對Cursor中的眾多選項配置項不熟悉&#xff0c;這…

Linux上位機開發實踐(SoC和MCU的差異)

【 聲明&#xff1a;版權所有&#xff0c;歡迎轉載&#xff0c;請勿用于商業用途。 聯系信箱&#xff1a;feixiaoxing 163.com】 soc一般是指跑linux的芯片&#xff0c;而mcu默認是跑rtos的芯片&#xff0c;兩者在基本原理方面其實差異不大。只不過&#xff0c;前者由于性能的原…

離線導出和安裝Python庫

詳細介紹&#xff1a;離線導出和安裝Python庫 常用命令&#xff1a; 生成requirement.txt文件 pip freeze > requirement.txt離線批量下載庫 pip download -d packages -r requirement.txt離線批量安裝庫 pip install --no-index --find-links./ -r requirement.txt

基于Vue Node.js的電影售票網站的設計與實現(源碼+lw+部署文檔+講解),源碼可白嫖!

摘要 互聯網技術的成熟和普及&#xff0c;勢必會給人們的生活方式帶來不同程度的改變。越來越多的經營模式中都少不了線上運營&#xff0c;互聯網正強力推動著社會和經濟發展。國人對民族文化的自信和不同文化的包容&#xff0c;再加上電影行業的發展&#xff0c;如此繁榮吸引…

利用 Python 和 AI 技術創作獨特的圖像藝術作品

1. 項目目標 生成藝術作品&#xff1a;利用 AI 模型&#xff08;如 Stable Diffusion&#xff09;生成具有藝術風格的圖像。自定義風格&#xff1a;通過文本提示&#xff08;prompt&#xff09;控制圖像的藝術風格&#xff08;如賽博朋克、印象派、超現實主義等&#xff09;。…

XR技術賦能藝術展演|我的宇宙推動東方美學體驗化

本次廣州展覽現場引入我的宇宙XR體驗模塊&#xff0c;通過空間計算與動作捕捉技術&#xff0c;讓觀眾在潮玩藝術氛圍中體驗虛擬互動&#xff0c;打造“看得懂也玩得動”的展演新場景。 作為科技與文化融合的推動者&#xff0c;我的宇宙正在以“體驗科技”為媒介&#xff0c;為潮…