跳到主要內容

發表文章

目前顯示的是 11月, 2020的文章

Python 圖像處理 OpenCV (10):圖像處理形態學之頂帽運算與黑帽運算

前文傳送門: 「Python 圖像處理 OpenCV (1):入門」 「Python 圖像處理 OpenCV (2):像素處理與 Numpy 操作以及 Matplotlib 显示圖像」 「Python 圖像處理 OpenCV (3):圖像屬性、圖像感興趣 ROI 區域及通道處理」 「Python 圖像處理 OpenCV (4):圖像算數運算以及修改顏色空間」 「Python 圖像處理 OpenCV (5):圖像的幾何變換」 「Python 圖像處理 OpenCV (6):圖像的閾值處理」 「Python 圖像處理 OpenCV (7):圖像平滑(濾波)處理」 「Python 圖像處理 OpenCV (8):圖像腐蝕與圖像膨脹」 「Python 圖像處理 OpenCV (9):圖像處理形態學開運算、閉運算以及梯度運算」 引言 今天是圖形處理形態學的最後一篇,我們介紹頂帽運算和黑帽運算。 建議先閱讀前面兩篇圖像處理的內容: 「Python 圖像處理 OpenCV (8):圖像腐蝕與圖像膨脹」 「Python 圖像處理 OpenCV (9):圖像處理形態學開運算、閉運算以及梯度運算」 形態學之頂帽運算 圖像處理頂帽運算是一個獲取圖像噪聲的運算,它是由原始圖像減去圖像開運算而得到的結果: 頂帽運算 = 原始圖像 - 開運算 圖像頂帽運算同樣是使用形態學擴展函數 morphologyEx() ,它的參數是 MORPH_TOPHAT ,示例如下: import cv2 as cv import numpy as np import matplotlib.pyplot as plt # 讀取圖片 source = cv.imread("demo_noise_white.jpg", cv.IMREAD_GRAYSCALE) # 設置卷積核 kernel = np.ones((5, 5), np.uint8) # 開運算 open = cv.morphologyEx(source, cv.MORPH_OPEN, kernel) # 頂帽運算 dst = cv.morphologyEx(source, cv.MORPH_TOPHAT, kernel)

【神回復】思域高爾夫怎麼選?20萬內哪款合資SUV更值?

新款捷達的性價比還是挺高的,在市場征戰多年擁有良好的口碑,性價比較高的版本為1。5L手動舒適型與1。5L自動舒適型,兩個配置車型的區別在於變速器不同,在配置上都擁有电子車身穩定系統,后駐車雷達,定速巡航,電動天窗,行車電腦显示屏等,滿足日常家用需求完全沒問題,同時在市場上也有三萬左右的優惠。 如果是自己一個人開的話,那麼在空間方面就不用考慮太多了,高爾夫的話採用的1.4T發動機搭配雙離合的組合,雖然在動力輸出上以及雙離合變速器的平順性上不如思域,但是在轉向的精度上比思域高,換裝多連桿后獨立懸架后底盤更加有韌性,隔音濾振相比思域都有更好的表現。 思域則是擁有非常強的動力輸出,跑高速的話後勁相比高爾夫會更強,同時乘坐空間以及配置要優於高爾夫,搭載的CVT變速器也更加平順,不過就是在轉向,底盤濾振以及隔音上面不如高爾夫。 總的來說,高爾夫的操控性能更佳,思域的動力更強,如果是經常跑高速的話更推薦動力更強的思域。 20萬左右性價比高的SUV可以看看雪佛蘭的探界者或者是斯柯達的柯迪亞克,其中雪佛蘭探界者擁有更低的售價同時加上有可觀的優惠,外觀充滿粗獷之感同時在動力,操控上都有非常不錯的表現,不足在於內飾做工用料一般並且啟停系統無法關閉。 柯迪亞克在華的銷量雖然不溫不火,但是它的產品力同樣十分強大,擁有硬朗的外觀以及非常可觀的乘坐空間,還有七座車型可選,次低配車型的配置已經十分豐富,再加上大眾的成熟動力總成以及良好的底盤濾振和隔音,開起來還是有一定高級感的。 新款捷達的性價比還是挺高的,在市場征戰多年擁有良好的口碑,性價比較高的版本為1.5L手動舒適型與1.5L自動舒適型,兩個配置車型的區別在於變速器不同,在配置上都擁有电子車身穩定系統,后駐車雷達,定速巡航,電動天窗,行車電腦显示屏等,滿足日常家用需求完全沒問題,同時在市場上也有三萬左右的優惠。 假如對空間沒有很大需求的話更加推薦選擇性價比更高的威馳,不僅外觀內飾相比於老氣的經典軒逸更加好看,同時在安全配置上也更加豐富,而經典軒逸的動力相比威馳來說有更強一點的輸出,各種舒適性配置更加齊全,但是售價更高,假如預算充足並且也能接受經典軒逸的外觀內飾的話買來代代步可以可以的,但是預算不是很充足只能買到經典軒逸低配的話建議選擇威馳。 假如是純家用車型的話更加推薦XR-V,雖然其定位為小

多應用下 Swagger 的使用,這可能是最好的方式!

問題 微服務化的時代,我們整個項目工程下面都會有很多的子系統,對於每個應用都有暴露 Api 接口文檔需要,這個時候我們就會想到 Swagger 這個優秀 jar 包。但是我們會遇到這樣的問題,假如說我們有5個應用,難道說我們每個模塊下面都要去引入這個 jar 包嗎?我作為一個比較懶的程序感覺這樣好麻煩,於是乎我思考了一種我認為比較好的方式,如果大家覺得有什麼不太好的地方希望指正,謝謝! 基礎 開始之前大家首先要了解一些基礎,主要有以下幾個方面: 單應用下 Swagger 的集成與使用 條件裝配 @Conditional 介紹 配置文件參數獲取 @ConfigurationProperties 單體應用下 Swagger 集成與使用 關於這部分從3方面講起分別是:什麼是、為什麼、如何用 什麼是 Swagger ? Swagger 是一個規範且完整的框架,用於生成、描述、調用和可視化 RESTful 風格的 Web 服務。 為什麼使用 Swagger ? 主要的優點: 支持 API 自動生成同步的在線文檔:使用 Swagger 后可以直接通過代碼生成文檔,不再需要自己手動編寫接口文檔了,對程序員來說非常方便,可以節約寫文檔的時間去學習新技術。 提供 Web 頁面在線測試 API:光有文檔還不夠,Swagger 生成的文檔還支持在線測試。參數和格式都定好了,直接在界面上輸入參數對應的值即可在線測試接口。 缺點的話就是但凡引入一個 jar 需要去了解下原理和使用,對於這個缺點我感覺相比於優點就是大巫見小巫,我簡單看了一下源碼,其實不算太難。 如何使用 Swagger 關於 Swagger 的使用其實也就是3板斧,大家一定很熟悉的; 第一板斧就是引入 jar 包,這裏我使用的是2.9.2版本          <!-- swagger 相關 -->          < dependency >              < groupId > io.springfox </ groupId >              < artifactId > springfox-swagger2 </ artifact