基于 OpenCV 的圖像與視頻處理

基于 OpenCV 的圖像處理

一、實驗背景

OpenCV 是一個開源的計算機視覺庫,廣泛應用于圖像處理、視頻分析、目標檢測等領域。通過學習 OpenCV,可以快速實現圖像和視頻的處理功能,為復雜的應用開發

奠定基礎。本實驗旨在通過實際代碼示例,掌握 OpenCV 的基本功能和使用方法。

二、實驗目的

  1. 學習如何使用 OpenCV 進行圖像處理。

  2. 掌握 OpenCV 的視頻讀取和播放功能。

  3. 實現視頻錄制功能,并理解視頻流的處理邏輯。

三、實驗內容

  1. 創建一個代碼文件夾 code ,并在其中創建 test.cpp 文件。

    image-20250417000404966

  2. 將以下代碼復制到 test.cpp 文件中:

#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;int main(int argc, char** argv) {// 加載圖像Mat image = imread("lena.jpg", IMREAD_COLOR);  // 默認加載彩色圖像// 檢查圖像是否成功加載if (image.empty()) {cout << "無法加載圖像!請檢查文件路徑。" << endl;return -1;}// 創建一個用于存儲灰度圖像的 Mat 對象Mat gray_image;// 使用 OpenCV 的 cvtColor 函數將彩色圖像轉換為灰度圖像cvtColor(image, gray_image, COLOR_BGR2GRAY);// 保存灰度圖像imwrite("gray_image.png", gray_image);// 顯示原始圖像和灰度圖像namedWindow("Original Image", WINDOW_AUTOSIZE);imshow("Original Image", image);namedWindow("Gray Image", WINDOW_AUTOSIZE);imshow("Gray Image", gray_image);// 等待用戶按鍵后關閉窗口waitKey(0);return 0;
}

3.編譯代碼

g++ test1.cpp -o test1 `pkg-config --cflags --libs opencv`

4.準備一張名為lena.jpg的圖片,與代碼文件放在同一目錄下。

5.運行程序

./test

四、實驗結果

  • 程序讀取lena.jpg圖片,對圖片進行徑向漸變處理后,生成新的圖片gray_image.png

image-20250420173251379

image-20250420173303059

  • 定義一個 Mat 對象 gray_image,用于存儲轉換后的灰度圖像。
  • 使用 cvtColor 函數將彩色圖像轉換為灰度圖像。
  • 參數 COLOR_BGR2GRAY 表示從 BGR 顏色空間轉換到灰度顏色空間。
  • 使用 namedWindowimshow 分別顯示原始圖像和灰度圖像。

COLOR_BGR2GRAY 表示從 BGR 顏色空間轉換到灰度顏色空間。

  • 使用 namedWindowimshow 分別顯示原始圖像和灰度圖像。

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

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

相關文章

Linux 常用指令用戶手冊

Linux 常用指令用戶手冊 適合新手入門 & 日常速查 目錄 基礎操作文件與目錄管理權限與所有權文本處理壓縮與解壓系統監控網絡操作進程管理實用小技巧 1. 基礎操作 1.1 查看系統信息 # 查看內核版本 uname -a# 查看系統發行版信息&#xff08;適用于 Debian/Ubuntu&…

長效IP與短效IP:如何選擇適合業務的代理類型

在當今數據驅動的互聯網環境中&#xff0c;代理IP已成為企業運營、數據采集和網絡安全的關鍵工具。其中長效IP與短效IP作為兩種主流代理類型&#xff0c;因特性差異被應用于不同場景。本文將深入解析二者的區別&#xff0c;并提供實際場景中的選擇建議。 一、長效IP與短效IP&a…

數據結構|排序算法(三)選擇排序 堆排序 歸并排序

一、選擇排序 1.算法思想 選擇排序&#xff08;Selection Sort&#xff09;是一種簡單直觀的排序算法&#xff0c;其基本思想是&#xff1a;每次都從待排序部分中選出最小的一個數據和待排序的第一個數據交換。 將待排序序列分為已排序和未排序兩部分&#xff0c;初始時已排…

Vue3 + TypeScript,關于item[key]的報錯處理方法

處理方法1&#xff1a;// ts-ignore 注釋忽略報錯 處理方法2&#xff1a;item 設置為 any 類型

8.觀察者模式:思考與解讀

原文地址:觀察者模式&#xff1a;思考與解讀 更多內容請關注&#xff1a;7.深入思考與解讀設計模式 引言 在開發軟件時&#xff0c;系統的某些狀態可能會發生變化&#xff0c;而你希望這些變化能夠自動通知到依賴它們的其他模塊。你是否曾經遇到過&#xff0c;系統中某個對象…

【HD-RK3576-PI】Ubuntu桌面多顯、旋轉以及更新Logo

硬件&#xff1a;HD-RK3576-PI 軟件&#xff1a;Linux6.1Ubuntu22.04 在基于HD-RK3576-PI硬件平臺運行Ubuntu 22系統的開發過程中&#xff0c;屏幕方向調整是提升人機交互體驗的關鍵環節。然而&#xff0c;由于涉及uboot引導階段、內核啟動界面、桌面環境顯示全流程適配&#x…

Rsync+sersync2實現目錄實時同步

Sersync rsync 實現實時同步服務 sersync2二進制包目錄規劃 /app/tools/sersync/ /app/tools/sersync/bin /app/tools/sersync/conf項目架構是這樣的&#xff1a; ------------------- ------------------- ------------------- | | …

MySQL視圖高級應用與最佳實踐

1. 視圖與索引的協同優化?? ??物化視圖&#xff08;模擬實現&#xff09;?? MySQL原生不支持物化視圖&#xff0c;但可通過“定時刷新”的物理表模擬&#xff1a; -- 1. 創建存儲結果的物理表 CREATE TABLE cached_monthly_sales (product_id INT,total_sales DECIMAL(10…

string的模擬實現 (6)

目錄 1.string.h 2.string.cpp 3.test.cpp 4.一些注意點 本篇博客就學習下如何模擬實現簡易版的string類&#xff0c;學好string類后面學習其他容器也會更輕松些。 代碼實現如下&#xff1a; 1.string.h #define _CRT_SECURE_NO_WARNINGS 1 #pragma once #include <…

Unity:像素(Pixels) 和 單位(Units)

目錄 從第一性原理出發&#xff1a;什么是像素和 Unit&#xff1f; &#x1f9f1; 1. 像素&#xff08;Pixel&#xff09;&#xff1a;圖像的最小單位 &#x1f4d0; 2. Unity Unit&#xff08;單位&#xff09;&#xff1a;游戲世界中的度量單位 核心換算公式&#xff1a;…

【失敗總結】Win10系統安裝docker

1.啟用或關閉windows功能中&#xff0c;將Hyper-V功能勾選全部啟用&#xff0c;容器勾選。設置好后要重啟電腦。 2.管網下載下載安裝Docker  Docker官網&#xff1a;https://www.docker.com/ 3.可以自定義Docker安裝路徑 新建安裝目錄&#xff1a;d:\MySoftware\Docker并將D…

《Adaptive Layer-skipping in Pre-trained LLMs》- 論文筆記

作者&#xff1a;Xuan Luo, Weizhi Wang, Xifeng Yan Department of Computer Science, UC Santa Barbara xuan_luoucsb.edu, weizhiwangucsb.edu, xyancs.ucsb.edu 1. 引言與動機 1.1 背景 LLM 的成功與挑戰: 大型語言模型 (LLMs) 在翻譯、代碼生成、推理等任務上取得巨大成…

DQN在Gym的MountainCar環境的實現

DQN on MountainCar 引言 在本次實驗里&#xff0c;我構建了DQN和Dueling DQN&#xff0c;并在Gymnasium庫的MountainCar環境中對它們展開測試。我通過調整訓練任務的超參數&#xff0c;同時設計不同的獎勵函數及其對應參數&#xff0c;致力于獲取更優的訓練效果。最后&#…

計算機網絡綜合實驗指南

計算機網絡綜合實驗指南 本實驗將結合《計算機網絡自頂向下》前三章的核心概念&#xff0c;通過實際操作加深對應用層、運輸層和網絡層的理解。實驗涵蓋 HTTP/TCP抓包分析、DNS解析觀察、網頁性能評估及簡單Socket編程&#xff0c;幫助你將理論轉化為實踐。 實驗準備 工具&…

【AI部署】騰訊云GPU-RUN—SadTalker的AI數字人視頻—未來之窗超算中心

磁盤空間 創建未來之窗 查看磁盤命令 df -h 指定路徑創建環境 conda create --prefix sadtalker python3.10 指令路徑運行環境 conda activate ./sadtalker 安裝環境 pip install torch1.12.1cu113 torchvision0.13.1cu113 torchaudio0.12.1 --extra-index-url https://…

爬蟲利器SpiderTools谷歌插件教程v1.0.0!!!web端JavaScript環境檢測!!!

SpiderTools谷歌插件教程v1.0.0 一、SpiderTools簡介二、下載通道三、插件介紹四、插件使用五、工具函數使用 補環境工具推薦&#xff1a;爬蟲補環境利器webEnv 一、SpiderTools簡介 SpiderTools主要用于檢測和監控網頁的JavaScript運行環境。該插件可以幫助開發者更好地查看…

Android開發協調布局滑動懸停

Android開發協調布局滑動懸停 直接給個xml,防止下次忘了怎么寫。 <?xml version="1.0" encoding="utf-8"?> <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"x…

Linux學習——TCP

一.TCP編程API 1.socket函數 1.socket函數 include include int socket(int domain,int type,int protocol); 參數 domain AF_INET AF_INET6 AF_UNIX,AF_LOCAL AF_NETLINK AF_PACKET type SOCK_STREAM: 流式…

Linux驅動開發--異步通知與異步I/O

3、異步通知與異步I/O 3.1 Linux信號 阻塞與非阻塞訪問、poll()函數提供了較好的解決設備訪問的機制&#xff0c;但是如果有了異步通知&#xff0c;整套機制則更加完整了。 異步通知的意思是&#xff1a;一旦設備就緒&#xff0c;則主動通知應用程序&#xff0c;這樣應用程序…

大語言模型推理能力的強化學習現狀理解GRPO與近期推理模型研究的新見解

每周跟蹤AI熱點新聞動向和震撼發展 想要探索生成式人工智能的前沿進展嗎&#xff1f;訂閱我們的簡報&#xff0c;深入解析最新的技術突破、實際應用案例和未來的趨勢。與全球數同行一同&#xff0c;從行業內部的深度分析和實用指南中受益。不要錯過這個機會&#xff0c;成為AI領…