原创 基於OpenCvSharp的數字圖像處理 - 輪廓

我們在前面的章節裏講過邊緣檢測,本章所說的輪廓是基於邊緣檢測的。我們之前所做的邊緣檢測,結果只是基於像素的,而很多時候,我們可能需要對輪廓進行一些幾何操作,例如分析區域是否連通,求出輪廓的凸包,判斷一個點是不是在輪廓內,等等。我們先來看兩

原创 基於OpenCvSharp的數字圖像處理 - 圖像分割

創建項目  |  文件與顯示  |  像素操作  |  圖像彩色類型轉換  |  模糊、平滑、去噪  |  銳化、邊緣檢測  |  二值化  |  形態學  |  位置變換  |  直方圖  |  霍夫變換  |  圖像優化  |  圖像

原创 基於OpenCvSharp的數字圖像處理 - 圖像優化

在直方圖一章裏提到的直方圖均衡化就是一種圖像優化的方法。本章再介紹圖像修復和去噪兩種方法。 一、圖像修復 這裏所介紹的圖像修復是很簡單的,就是用周邊區域的像素填充損壞區域。代碼如下: Mat src = new Mat(img_lenn

原创 基於OpenCvSharp的數字圖像處理 - 霍夫變換

霍夫變換最大的作用是檢測圖像中的直線。其原理是這樣的:假設圖像中有一條直線,其方程爲y=kx+b。直線上有一個點,其座標爲(x1,y1)。顯然,y1=kx1+b。如果我們把x、y看成是已知的,把k、b看成是未知數,有:b=-x1k+y1。

原创 基於OpenCvSharp的數字圖像處理 - 直方圖

直方圖是對圖像灰度信息的一個統計結果,直方圖的分佈能夠反映圖像的某些特徵,可用於圖像匹配。 一、直方圖 提取圖像直方圖的代碼如下: Mat src = new Mat(img_lenna, ImreadModes.Grayscale);

原创 基於OpenCvSharp的數字圖像處理 - 創建項目

OpenCV是一個不錯的數字圖像處理庫,但它原生的開發語言是C++。要在C#項目裏使用,需要經過一些轉換。OpenCvSharp是一個不錯的封裝,接口跟OpenCV保持得很好。 本教程的示例項目使用Visual Studio 2019開發

原创 基於OpenCvSharp的數字圖像處理 - 位置變換

平移、旋轉、縮放、翻轉、剪切等變換都屬於仿射變換,而仿射變換又是透視變換的一種。所有仿射變換都可以用三個點到另外三個點去描述,而透視變換需要四個點。我們拍攝的圖像裏面,一般矩形的物體(例如紙張)都會變形,如果要轉回規整的矩形,就要使用透視

原创 基於OpenCvSharp的數字圖像處理 - 銳化、邊緣檢測

一、Sobel算子 Sobel算子是一階導數的近似,分橫向求導和縱向求導,其3階算子爲: 實際運用時,我們可以把兩次求導的結果按一定比例結合在一起。 Mat src = new Mat(img_lenna, ImreadModes.G

原创 基於OpenCvSharp的數字圖像處理 - 形態學

一、腐蝕 形態學的內部算法依然是卷積,跟中值濾波一樣,非線性。中值濾波取核範圍的中位數,而腐蝕取最小值,膨脹取最大值。 腐蝕看起來的效果是亮的區域被侵蝕,可用於一些噪聲的去除。 Mat src = new Mat(img_region,

原创 基於OpenCvSharp的數字圖像處理 - 圖像彩色類型轉換

在計算機上存儲的圖像一般使用RGB彩色空間,但是在其他場合,我們可能需要其他的彩色空間。例如,在打印時,一般使用CMYK;在很多圖像處理裏,我們只需要用到圖像的灰度信息,需要把圖像轉爲灰度圖;HSV空間是人眼更好理解的一個彩色空間,等等。

原创 基於OpenCvSharp的數字圖像處理 - 二值化

一、二值化方法 在OpenCvSharp,threshold函數專門用來對灰度圖像進行二值化。給定一個閾值thresh,最大值maxval,函數在不同的二值化類型下,功能表現如下表所示: 類型 >thresh <=thresh THRES

原创 工控系統設計(二)系統架構

以數據的流動爲依據,系統架構如下圖所示: 整個架構有兩個核心,分別是內存數據和數據庫,其他模塊都圍繞着這兩個數據開發功能。 鏈路層負責將字節流發送到設備,以及從設備接收字節流。它不管這些數據代表什麼意義。 協議層負責解析字節流,以及將某

原创 TypeScript編寫共享庫併發布到npm

一、初始化項目 1、新增一個文件夾,然後cmd進入到文件夾。 2、運行以下命令: npm init 根據提示,填寫相關的信息。完成以後會生成package.json,如下所示: { "name": "frontlib", "v

原创 工控系統設計(一)系統功能概述

一、系統功能概述 整個系統應包含如下的幾大功能模塊: 1、數據採集 2、數據展示 3、設備反控 4、報表 5、數據上傳 6、組態圖 除此之外,增加兩項擴展功能: 7、自觸發 8、他方系統交互 1.1 數據採集 工控系統數據的來源是各種各樣

原创 工控系統設計(五)協議層設計

五、協議層設計 不同廠商生產設備所採用的通訊協議不盡相同,有些儘管聲稱使用通用的協議,但實際也有小調整的可能。工控系統如果爲每種協議修改主體程序,推出不同版本,那勢必會造成工控系統版本的混亂。 本工控系統通過“設備配置+協議解析模塊”的方