【Python】【OpenCV】傅里葉變換

来源:https://www.cnblogs.com/vangoghpeng/archive/2023/11/28/17863202.html
-Advertisement-
Play Games

之前的隨筆中使用了C++來編寫演算法底層邏輯,這次我們直接使用OpenCV和Numpy和Scipy所提供的方法直接調用實現 1 import cv2 2 import numpy 3 from scipy import ndimage 4 5 kernel_3 = numpy.array([ 6 [- ...


之前的隨筆中使用了C++來編寫演算法底層邏輯,這次我們直接使用OpenCV和Numpy和Scipy所提供的方法直接調用實現

 1 import cv2
 2 import numpy
 3 from scipy import ndimage
 4 
 5 kernel_3 = numpy.array([
 6     [-1, -1, -1],
 7     [-1, 8, -1],
 8     [-1, -1, -1]
 9 ])
10 
11 kernel_5 = numpy.array([
12     [-1, -1, -1, -1, -1],
13     [-1, 1, 2, 1, -1],
14     [-1, 2, 4, 2, -1],
15     [-1, 1, 2, 1, -1],
16     [-1, -1, -1, -1, -1]
17 ])
18 
19 img = cv2.imread('Pic.webp', 0)
20 k3 = ndimage.convolve(img, kernel_3)
21 k5 = ndimage.convolve(img, kernel_5)
22 blurred = cv2.GaussianBlur(img, (17, 17), 0)
23 hpf = img - blurred
24 
25 cv2.imshow('IMG', img)
26 cv2.imshow('K3', k3)
27 cv2.imshow('hpf', hpf)
28 
29 cv2.waitKey()
30 cv2.destroyAllWindows()

隨機在網上搜索灰度圖然後Down下來保存名字為Pic即可。

19 Line中的 cv2.imread()中的第二個參數很重要,有三種模式,RGB,Gray scale,NoChange,具體請自行搜索。我們需要選擇Gray scale即數字0就可以表示了。

 至於convolve方法其實可以自己實現,具體參照之前的【圖像處理】隨筆。

23 Line中的減法作用,bulrred變數被經過高斯低通濾波處理的img賦值,而numpy數組是可以直接進行加減法運算的,此時得到的 hpf 變數就是原圖銳化的結果。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 專欄分享:vue2源碼專欄,vue3源碼專欄,vue router源碼專欄,玩具項目專欄,硬核💪推薦🙌 歡迎各位ITer關註點贊收藏🌸🌸🌸 Vue3中響應數據核心是 reactive , reactive 的實現是由 proxy 加 effect 組合,上一章節我們利用 proxy 實現了 ...
  • 自增自減運算符 1、基本使用 內置提供 ++、--運算符 是用於將變數本身進行加1或者減1操作 // 1、基本使用 var i = 10; i++;//等價於語句 i+=1 console.log(i);//11 var m = 10; m--; console.log(m) 2、前置與後置的區別 ...
  • 一、定義 定義一個語言的文法,並且建立一個解釋器來解釋該語言中的句子,這裡的“語言”是指使用規定格式和語法的代碼。解釋器模式是一種行為型模式。 二、描述 解釋器模式是一種使用頻率相對較低但學習難度較大的設計模式,它主要用於描述如何使用面向對象語言構成一個簡單的語言解釋器,包含以下四個角色: 1、Ab ...
  • 推薦一本日本網友Kenji Hiranabe寫的《線性代數的藝術》。這本書是基於MIT大牛Gilbert Strang教授的《每個人的線性代數》製作的。 雖然《線性代數的藝術》這本書僅僅只有12頁的內容,就把線性代數的重點全畫完了,清晰明瞭。 《線性代數的藝術》PDF版本:https://pan.q ...
  • 懶載入是Spring框架中的一個重要特性,它允許我們將bean的實例化推遲到第一次使用時。懶載入的主要用途是提高應用程式的啟動性能,減少不必要的資源消耗。 一、懶載入的用途 在大型的應用程式中,有些bean可能只在特定的條件下才會被使用到。如果在應用程式啟動時就實例化所有的bean,會導致啟動時間變 ...
  • 一、參考 https://ericniebler.com/2020/11/08/structured-concurrency/ 二、總結 1. 結構化併發是什麼-概述 是什麼:一種確保子操作在父操作之前完成的方式,類似函數在調用函數之前完成。 最典型的結構化併發:C++20的協程 意義:它通過使非同步 ...
  • 十八、函數(一) 1、函數概述 1)函數帶來的好處 ①代碼模塊化,便於閱讀維護 ②代碼模塊化以後,能夠實現分工合作 ③減少重覆代碼,降低工作流 2)函數的語法 //函數的語法 返回類型 函數名稱(參數,參數,參數,參數) //參數的語法包括:參數類型 參數名稱 { 函數的功能區; return 返回 ...
  • 線程池 線程池簡介 線程池(thread pool):一種線程的使用模式。線程過多會帶來調度的開銷,進而影響局部和整體性能。而線程池維護多個線程,等待著監督管理者分派併發執行的任務。這避免了在處理短時間任務時創建和銷毀線程的代價。線程池不僅能夠保證內核的充分使用,還能防止過分調度線程。 10多年前的 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...