opencv-常用代碼

以下是一些OpenCV中常用的代碼片段,涵蓋了一些基本的圖像處理和計算機視覺任務。

  1. 加載和顯示圖像:

    import cv2# 讀取圖像
    img = cv2.imread('image.jpg')# 顯示圖像
    cv2.imshow('Image', img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    
  2. 調整圖像大小:

    resized_img = cv2.resize(img, (width, height))
    
  3. 灰度轉換:

    gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    
  4. 圖像平滑:

    smoothed_img = cv2.GaussianBlur(img, (kernel_size, kernel_size), 0)
    
  5. 邊緣檢測:

    edges = cv2.Canny(gray_img, threshold1, threshold2)
    
  6. 圖像閾值處理:

    ret, binary_img = cv2.threshold(gray_img, threshold_value, max_value, cv2.THRESH_BINARY)
    
  7. 圖像輪廓檢測:

    contours, hierarchy = cv2.findContours(edges, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    
  8. 繪制輪廓:

    cv2.drawContours(img, contours, -1, (0, 255, 0), 2)
    
  9. 人臉檢測:

    face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
    faces = face_cascade.detectMultiScale(gray_img, scaleFactor=1.3, minNeighbors=5)
    
  10. 圖像旋轉:

    rows, cols = img.shape[:2]
    M = cv2.getRotationMatrix2D((cols / 2, rows / 2), angle, scale)
    rotated_img = cv2.warpAffine(img, M, (cols, rows))
    
  11. 圖像腐蝕與膨脹:

    kernel = np.ones((kernel_size, kernel_size), np.uint8)
    eroded_img = cv2.erode(img, kernel, iterations=1)
    dilated_img = cv2.dilate(img, kernel, iterations=1)
    
  12. 圖像直方圖均衡化:

    equ_img = cv2.equalizeHist(gray_img)
    
  13. 圖像混合:

    blended_img = cv2.addWeighted(img1, alpha, img2, beta, gamma)
    
  14. 圖像拼接:

    stitched_img = cv2.hconcat([img1, img2])
    
  15. 圖像截取:

    roi = img[y:y+h, x:x+w]
    
  16. 圖像相加:

    added_img = cv2.add(img1, img2)
    
  17. 圖像減法:

    subtracted_img = cv2.subtract(img1, img2)
    
  18. 圖像位運算:

    bitwise_and = cv2.bitwise_and(img1, img2)
    bitwise_or = cv2.bitwise_or(img1, img2)
    bitwise_xor = cv2.bitwise_xor(img1, img2)
    bitwise_not = cv2.bitwise_not(img)
    
  19. 圖像平均模糊:

    averaged_img = cv2.blur(img, (kernel_size, kernel_size))
    
  20. 中值濾波:

    median_blurred_img = cv2.medianBlur(img, ksize)
    
  21. 自適應閾值:

    adaptive_thresh = cv2.adaptiveThreshold(gray_img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2)
    
  22. 圖像旋轉縮放:

    M = cv2.getRotationMatrix2D((cols / 2, rows / 2), angle, scale)
    rotated_resized_img = cv2.warpAffine(img, M, (new_cols, new_rows))
    
  23. SIFT 特征提取和匹配:

    sift = cv2.SIFT_create()
    keypoints1, descriptors1 = sift.detectAndCompute(img1, None)
    keypoints2, descriptors2 = sift.detectAndCompute(img2, None)
    
  24. SURF 特征提取和匹配:

    surf = cv2.SURF_create()
    keypoints1, descriptors1 = surf.detectAndCompute(img1, None)
    keypoints2, descriptors2 = surf.detectAndCompute(img2, None)
    
  25. ORB 特征提取和匹配:

    orb = cv2.ORB_create()
    keypoints1, descriptors1 = orb.detectAndCompute(img1, None)
    keypoints2, descriptors2 = orb.detectAndCompute(img2, None)
    
  26. 使用 FLANN 匹配器進行特征匹配:

    FLANN_INDEX_KDTREE = 1
    index_params = dict(algorithm=FLANN_INDEX_KDTREE, trees=5)
    search_params = dict(checks=50)
    flann = cv2.FlannBasedMatcher(index_params, search_params)
    matches = flann.knnMatch(descriptors1, descriptors2, k=2)
    
  27. 簡單圖像深度學習任務:

    net = cv2.dnn.readNet('model.weights', 'model.cfg')
    blob = cv2.dnn.blobFromImage(img, scalefactor=1.0, size=(300, 300), mean=(104.0, 177.0, 123.0))
    net.setInput(blob)
    detections = net.forward()
    
  28. HOG 特征提取與行人檢測:

    hog = cv2.HOGDescriptor()
    hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
    boxes, weights = hog.detectMultiScale(img, winStride=(8, 8), padding=(0, 0), scale=1.05)
    

這些是一些基本的OpenCV代碼示例,覆蓋了圖像處理和計算機視覺中的常見任務。在實際應用中,可能需要根據具體場景和需求進一步調整參數和算法。

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

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

相關文章

鴻蒙4.0開發筆記之DevEco Studio頁面操作router的pushUrl頁面跳轉與back返回上一頁(五)

一、認識組件 關于HarmonyOS中ArkTS的基礎組件請參見文章鴻蒙4.0開發筆記之ArkTs語言基礎與基本組件結構(四) 二、實現頁面跳轉pushUrl 1、操作說明 實現頁面跳轉的核心便是router.pushUrl的調用,操作起來也很簡單,總共就四步…

Laravel 安裝(筆記一)

目錄 第一步、Laravel 一般使用 composer安裝 第二步、使用composer安裝項目 第三步、配置環境 第四步、訪問域名,安裝完成 Laravel 官網 l???????Installation - Laravel 中文網 為 Web 工匠創造的 PHP 框架 第一步、Laravel 一般使用 composer安裝 如…

13.求面積[有問題]

#include<stdio.h> #include<math.h> #include<bits/stdc.h> using namespace std;void fun(double a,b,c) {double p,c;p (abc)/2;c sqrt(p*(p-a)*(p-b)*(p-c));printf("面積是&#xff1a;%lf",c); }int main(){double a,b,c;scanf("%lf,%…

《golang設計模式》第三部分·行為型模式-06-備忘錄模式(Memento)

文章目錄 1. 概述1.1 角色1.2 類圖 2. 代碼示例2.1 設計2.2 代碼2.3 類圖 1. 概述 備忘錄&#xff08;Memento&#xff09;用于在不破壞目標對象封裝特性的基礎上&#xff0c;將目標對象內部的狀態存儲到外部對象中&#xff0c;以備之后恢復狀態時使用。 1.1 角色 Originato…

【洛谷 B2008】計算 (a+b)×c 的值 題解(順序結構+四則運算)

計算 (ab)c 的值 題目描述 給定 3 3 3 個整數 a , b , c a,b,c a,b,c&#xff0c;計算表達式 ( a b ) c (ab) \times c (ab)c 的值。 輸入格式 輸入僅一行&#xff0c;包括三個整數 a , b , c a,b,c a,b,c&#xff0c;數與數之間以一個空格分開。 輸出格式 輸出一行…

如何訪問linux上的web服務

1.獲取服務運行端口 例如8080 2.如果時vmware 需要先配置轉發端口和主機ip 主機ip需要未使用的 例如&#xff1a; 3.查看虛擬機防火墻設置 centos8 為例 &#xff1a; firewall-cmd --zonepublic --list-ports 查看放通端口 如果沒有放通 firewall-cmd --zonepublic --add-p…

04 if進階

elif 否則如果 如果條件沒有滿足 會繼續進入“否則如果”里面判斷 只要滿足一個條件 條件判斷立即終止 chinese 100 if chinese 100:print("我們去迪士尼玩")elif chinese > 90:print("我們去朱雀森林公園")else:print("回家寫作業")if n…

GO MySQL數據庫操作封裝

Go 語言操作數據庫, 數據庫連接封裝&#xff1a; package Test_dbimport ("database/sql""fmt"_ "github.com/go-sql-driver/mysql""log""sync" )var (DB *sql.DBpoolOnce sync.Once )func NewConnection() (*sql.…

微信小程序藍牙連接 uniApp藍牙連接設備

藍牙列表期待效果 代碼 <template><view class"bluetooth-list"><view class"align-items option" style"justify-content: space-between;" v-for"item in bluetoothList" :key"item.deviceId"><vie…

游戲開發團隊配置與協作流程

游戲開發技術圖譜 - 知乎 游戲制作的流程是什么啊&#xff1f; - 知乎 系統策劃&#xff1a;一張圖梳理游戲系統的生產流程 - 知乎 游戲開發入門&#xff08;十一&#xff09;游戲引擎架構-CSDN博客

全局定制序列化

作用:將返回實體類中的屬性如果為null 變成"" package com.example.micrweb.config;import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.ObjectMapper; import com.f…

linux驅動——原子操作

linux驅動——原子操作 原子操作 API Linux 內核定義了叫做 atomic_t 的結構體來完成整型數據的原操作&#xff0c;在使用是使用原子變量來代替整型變量。此結構體定義在 include/linux/types.h 文件中&#xff0c;定義如下&#xff1a; typedef struct {int counter; }atom…

websocket與node.js實現

什么是 websocket&#xff1f; websoket 是一種網絡通信協議&#xff0c;基于 tcp 連接的全雙工通信協議&#xff08;客戶端和服務器可以同時收發信息&#xff09;&#xff0c;值得注意的是他不基于 http 協議&#xff0c;websocket 只有在建立連接的時候使用到 http 協議進行…

Kubernetes(k8s)之Pod詳解

文章目錄 Kubernetes之Pod詳解一、Pod介紹pod結構pod定義 二、Pod配置pod基本配置鏡像拉取策略啟動命令環境變量端口設置資源配額 三、Pod生命周期創建和終止初始化容器鉤子函數容器探測重啟策略 四、Pod調度定向調度NodeNameNodeSelector 親和性調度NodeAffinityPodAffinityPo…

風電場葉片運輸車模型-FBX格式-帶動畫-數字孿生場景搭建

FBX格式的風電場中葉片運輸車輛模型&#xff0c;按照真實尺寸建模&#xff0c;車輛多個部位帶動畫效果&#xff0c;適用于風電場三維數字化場景和風電場數字孿生使用&#xff0c;也可以用來作為各種三維平臺的測試模型。 模型效果圖 下載地址 葉片運輸車模型下載地址

php生成xml數據

在PHP中&#xff0c;你可以使用以下幾種方法生成XML數據&#xff1a; 使用DOM擴展&#xff1a; $xml new DOMDocument(1.0, UTF-8); $root $xml->createElement(root); $xml->appendChild($root); $child $xml->createElement(child); $root->appendChild($ch…

使用 Raspberry Pi、Golang 和 HERE XYZ 制作實時地圖

到目前為止&#xff0c;您可能已經看過我的一些與 Raspberry Pi 和位置數據相關的教程。我是這些小型物聯網 (IoT) 設備的忠實粉絲&#xff0c;并編寫了有關使用 Golang 進行 WLAN 定位 和 使用 Node.js 進行 GPS 定位的教程。 我想繼續沿著 Golang 路線&#xff0c;做一個關于…

目標檢測YOLO實戰應用案例100講-基于YOLO的小目標檢測改進算法

目錄 前言 國內外研究現狀 常規尺寸目標檢測算法 小目標的檢測算法

stm32定時器輸入捕獲模式

頻率測量 頻率測量有兩種方法 測頻法&#xff1a;在閘門時間T內&#xff0c;對上升沿或下降沿計次&#xff0c;得到N&#xff0c;則評率fxN/T測周法&#xff1a;兩個上升沿內&#xff0c;以標準頻率fc計次得到N&#xff0c;則頻率fx fc/N中界頻率&#xff1a;測頻法和測周法誤…

Spark的通用運行流程與Spark YARN Cluster 模式的運行流程

Spark的通用運行流程 集群啟動后Worker節點會向Master節點心跳匯報資源Client向Driver提交APP&#xff0c;根據不同的運行模式在不同的地方創建Driver。Driver以粗粒度的方式向Master注冊應用并申請資源&#xff08;在Application執行之前&#xff0c;將所有的資源申請完畢&…