初入OpenCV

OpenCV簡介

OpenCV是一個開源的跨平臺計算機視覺庫,它實現了圖像處理計算機視覺方面的很多通用算法。

應用場景:

????????目標識別:人臉、車輛、車牌、動物;

????????自動駕駛;醫學影像分析;

????????視頻內容理解分析:文字識別、公眾人物識別、識別各類物品

OpenCV圖像模式

位圖模式

????????位圖模式就是1位二進制深度的圖像模式,只有黑白兩種顏色。它可以由掃描或置入黑色的矢量線條圖像生成,也只能由灰度模式轉換而來。

灰度模式

????????灰度模式是8位二進制深度的圖像模式,在全黑和全白間插有254個灰度等級的顏色來描繪灰度模式的圖像,所有模式的圖像都能轉換成灰度模式。

RGB模式

? ? ? ? 簡而言之就是彩色。

新建項目

進入Qt新建一個項目,打開.pro文件,添加以下代碼

INCLUDEPATH +=/usr/local/include/
LIBS+=/usr/local/lib/libopencv_world.so

引入頭文件和域

#include <opencv2/opencv.hpp>
using namespace cv;

加載圖像

示例

我們來使用OpenCV來實現加載一張圖片

    Mat img=imread("image/dog.jpg");imshow("img",img); // 顯示圖片waitKey(0); // 等待用戶操作

?Mat類似于一個圖片信息的類。

imread("path")讀取圖片信息,path為路徑。

imshow()顯示圖片。

waitKey(0)類似于一個死循環等待用戶操作,如果我們寫waitKey(1000)就等待1s就消失,當然waitKey的話只要接收到鍵盤輸入值就消失。

結果

?

處理圖像像素點

示例

#include <iostream>
#include <opencv2/opencv.hpp>using namespace std;
using namespace cv;Mat image_process(Mat &img){int row=img.rows; // 獲取行int col=img.cols * img.channels(); // 獲取列// 改變圖片像素點for(int i=0;i<row;i++){// 獲取第i行地址uchar* data=img.ptr<uchar>(i);for(int j=0;j<col;j++){/*int q=rand()%col;data[q]=155;*/data[j]-=70;}}return img;
}int main()
{// 讀取圖片信息// Mat:圖片信息的類Mat img=imread("image/dog.jpg",IMREAD_GRAYSCALE);image_process(img);imshow("img",img);while(1){int key=waitKey(0); // 等待用戶操作if(key==10)break;}return 0;
}

結果

簡易毛玻璃特效?

示例

#include <iostream>
#include <opencv2/opencv.hpp>using namespace std;
using namespace cv;// 毛玻璃特效
Mat img_glass(Mat &img)
{RNG rng;int random=0;for(int i=0;i<img.rows;i++){for(int j=0;j<img.cols-5;j++){random=rng.uniform(0,5);// at<>訪問Mat數據域(BGR)img.at<Vec3b>(i,j)[0]=img.at<Vec3b>(i+random,j+random)[0]; // Bimg.at<Vec3b>(i,j)[1]=img.at<Vec3b>(i+random,j+random)[1]; // Gimg.at<Vec3b>(i,j)[2]=img.at<Vec3b>(i+random,j+random)[2]; // R}}return img;
}int main()
{// 讀取圖片信息// Mat:圖片信息的類Mat img=imread("image/dog.jpg");img_glass(img);imshow("img",img);while(1){int key=waitKey(0); // 等待用戶操作if(key==10)break;}return 0;
}

結果

讀取視頻

示例

#include <iostream>
#include <opencv2/opencv.hpp>using namespace std;
using namespace cv;int main()
{Mat frame;VideoCapture cap("video/carMove.mp4");while(cap.read(frame)){imshow("video",frame);waitKey(40);}return 0;
}

?

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

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

相關文章

訊聯云庫項目開發日志(一)

1、設計數據庫 2、寫基本框架 entity、controller、service、exception、utils、mapper mapper層&#xff1a; 生成了一系列的CRUD方法 工具類&#xff1a;線程安全的日期工具類、 ??參數校驗工具類? 線程安全的日期工具類??&#xff1a;主要用于 ??日期格式化&…

langchain學習

無門檻免費申請OpenAI ChatGPT API搭建自己的ChatGPT聊天工具 https://nuowa.net/872 基本概念 LangChain 能解決大模型的兩個痛點&#xff0c;包括模型接口復雜、輸入長度受限離不開自己精心設計的模塊。根據LangChain 的最新文檔&#xff0c;目前在 LangChain 中一共有六大…

Protobuf工具

#region 知識點一 什么是 Protobuf //Protobuf 全稱是 protocol - buffers&#xff08;協議緩沖區&#xff09; // 是谷歌提供給開發者的一個開源的協議生成工具 // 它的主要工作原理和我們之前做的自定義協議工具類似 // 只不過它更加的完善&…

zst-2001 上午題-歷年真題 軟件工程(38個內容)

CMM 軟件工程 - 第1題 b 軟件工程 - 第2題 c 軟件工程 - 第3題 c 軟件工程 - 第4題 b 軟件工程 - 第5題 b CMMI 軟件工程 - 第6題 0.未完成&#xff1a;未執行未得到目標。1.已執行&#xff1a;輸入-輸出實現支持2.已管理&#xff1a;過程制度化&#x…

軟考架構師考試-UML圖總結

考點 選擇題 2-4分 案例分析0~1題和面向對象結合考察&#xff0c;前幾年固定一題。近3次考試沒有出現。但還是有可能考。 UML圖概述 1.用例圖&#xff1a;描述系統功能需求和用戶&#xff08;參與者&#xff09;與系統之間的交互關系&#xff0c;聚焦于“做什么”。 2.類圖&…

數據結構(七)——圖

一、圖的定義與基本術語 1.圖的定義 圖G由頂點集V和邊集E組成&#xff0c;記為G(V,E)&#xff0c;其中V(G)表示圖G中頂點的有限非空集&#xff1b;E(G)表示圖G中頂點之間的關系&#xff08;邊&#xff09;的集合 注意&#xff1a;線性表可以是空表&#xff0c;樹可以是空樹&…

Android7 Input(六)InputChannel

概述: 本文講述Android Input輸入框架中 InputChannel的功能。從前面的講述&#xff0c;我們知道input系統服務最終將輸入事件寫入了InputChannel&#xff0c;而input屬于system_server進程&#xff0c;App屬于另外一個進程&#xff0c;當Input系統服務想要把事件傳遞給App進行…

【 Redis | 實戰篇 秒殺實現 】

目錄 前言&#xff1a; 1.全局ID生成器 2.秒殺優惠券 2.1.秒殺優惠券的基本實現 2.2.超賣問題 2.3.解決超賣問題的方案 2.4.基于樂觀鎖來解決超賣問題 3.秒殺一人一單 3.1.秒殺一人一單的基本實現 3.2.單機模式下的線程安全問題 3.3.集群模式下的線程安全問題 前言&…

如何用URDF文件構建機械手模型并與MoveIt集成

機械手URDF文件的編寫 我們用urdf文件來描述我們的機械手的外觀以及物理性能。這里為了簡便&#xff0c;就只用了基本的圓柱、立方體了。追求美觀的朋友&#xff0c;還可以用dae文件來描述機械手的外形。 import re def remove_comments(text):pattern r<!--(.*?)-->…

《構建社交應用的安全結界:雙框架對接審核API的底層邏輯與實踐》

用戶生成內容如潮水般涌來。從日常的生活分享&#xff0c;到激烈的觀點碰撞&#xff0c;這些內容賦予社交應用活力&#xff0c;也帶來管理難題。虛假信息、暴力言論、侵權內容等不良信息&#xff0c;如同潛藏的暗礁&#xff0c;威脅著社交平臺的健康生態。內容審核機制&#xf…

39:分類器流程

第一步 創建支持向量機分類器 create_class_svm (7, rbf, KernelParam, Nu, |ClassNames|, one-versus-one, principal_components, 5, SVMHandle) 第二步 添加樣本到分類器里 for ClassNumber : 0 to |ClassNames| - 1 by 1 *列出目錄下的所有文件 list_files (ReadPath…

LangChain對話鏈:打造智能多輪對話機器人

LangChain對話鏈:打造智能多輪對話機器人 目錄 LangChain對話鏈:打造智能多輪對話機器人ConversationChain 是什么核心功能與特點基本用法示例內存機制自定義提示詞應用場景與其他鏈的結合`SequentialChain` 是什么![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/0…

el-select 結合 el-tree:樹形下拉數據

一、單選 <template><div class"selectTree-wapper"><el-selectv-model"selectValue"placeholder"請選擇"popper-class"custom-el-select-class"ref"selectRef"clearableclear"clearHandle">&…

BFS算法篇——從晨曦到星辰,BFS算法在多源最短路徑問題中的詩意航行(下)

文章目錄 引言一、01矩陣1.1 題目鏈接&#xff1a;https://leetcode.cn/problems/01-matrix/description/1.2 題目分析&#xff1a;1.3 思路講解&#xff1a;1.4 代碼實現&#xff1a; 二、飛地的數量2.1 題目鏈接&#xff1a;https://leetcode.cn/problems/number-of-enclaves…

Leetcode (力扣)做題記錄 hot100(49,136,169,20)

力扣第49題&#xff1a;字母異位詞分組 49. 字母異位詞分組 - 力扣&#xff08;LeetCode&#xff09; 遍歷數組&#xff0c;將每一個字符串變成char數組 然后排序&#xff0c;如果map里面有則將他的值返回來&#xff08;key是排序好的字符串&#xff09; class Solution {pu…

【自學30天掌握AI開發】第1天 - 人工智能與大語言模型基礎

自學30天掌握AI開發 - 第1天 &#x1f4c6; 日期和主題 日期&#xff1a;第1天 主題&#xff1a;人工智能與大語言模型基礎 &#x1f3af; 學習目標 了解人工智能的發展歷史和基本概念掌握大語言模型的基本原理和工作機制區分不同類型的AI模型及其特點理解AI在當前社會中的…

WebRTC 源碼原生端Demo入門-1

1、概述 我的代碼是比較新的&#xff0c;基于webrtc源碼倉庫的main分支的&#xff0c;在windows下把源碼倉庫下載好了后&#xff0c;用visual stdio 2022打開進行編譯調試src/examples/peerconnection_client測試項目,主要是跑通這個demo來入手和調試&#xff0c;純看代碼很難…

【LeetCode】刪除排序數組中的重復項 II

題目 鏈接 思路 雙指針 我好聰明啊&#xff0c;自己想出了這個雙指針的辦法&#xff0c;哈哈哈哈哈哈哈&#xff0c;太高興了 代碼 class Solution(object):def removeDuplicates(self, nums):""":type nums: List[int]:rtype: int"""nlen…

通義千問席卷日本!開源界“卷王”阿里通義千問成為日本AI發展新基石

據日本經濟新聞&#xff08;NIKKEI&#xff09;報道&#xff0c;通義千問已成為日本AI開發的新基礎&#xff0c;其影響力正逐步擴大&#xff0c;深刻改變著日本AI產業的格局。 同時&#xff0c;日本經濟新聞將通義千問Qwen2.5-Max列為全球AI模型綜合評測第六名&#xff0c;不僅…

第J7周:對于ResNeXt-50算法的思考

目錄 思考 一、代碼功能分析 1. 構建 shortcut 分支&#xff08;殘差連接的旁路&#xff09; 2. 主路徑的第一層卷積&#xff08;11&#xff09; 4. 主路徑的第三層卷積&#xff08;11&#xff09; 5. 殘差連接 激活函數 二、問題分析總結&#xff1a;殘差結構中通道數不一致的…