快訊!我的新書今天開始可以在天瓏網路書店預購啦!歡迎大家前往訂購!
>>>> AI 職場超神助手:ChatGPT 與生成式 AI 一鍵搞定工作難題 <<<<

OpenCV

  • ,

    圖片降維處理(從彩色變灰階再變黑白)

    從彩色變灰階 使用 cv.cvtColor()函數可作色彩的空間轉換,例如要偵測顏色時,要轉成HSV 而降為灰階則為 從灰階到黑白 要把圖片從灰階變成黑白很簡單。對於每個像素,應用相同的閾值。如果像素值小於閾值,則設置為0,否則設置為最大值。函數cv.threshold用於應用閾值。第一個參數是源圖像,應該是灰度圖像。第二個參數是用於對像素值進行分類的閾值。第三個參數是分配給超過閾值的像素值的最大值。 可使用參數cv.threshold和cv.adaptiveThreshold。 cv.threshold 使用範例 cv.adaptiveThreshold 在cv.threshold使用一個全局值作為閾值。但這可能並不適用於所有情況,例如,如果圖像在不同區域具有不同的光照條件。在這種情況下,自適應閾值可以提供幫助。在這裡,算法根據像素周圍的小區域確定像素的閾值。因此,我們為同一圖像的不同區域獲得不同的閾值,這為具有不同光照的圖像提供了更好的結果。 除了上述參數外,方法cv.adaptiveThreshold 還需要三個輸入參數: adaptiveMethod決定如何計算閾值: cv.ADAPTIVE_THRESH_MEAN_C:閾值是鄰域面積的平均值減去常量C。 cv.ADAPTIVE_THRESH_GAUSSIAN_C :閾值是鄰域值減去常量C的高斯加權和。 blockSize確定鄰域區域的大小,C是從鄰域像素的平均值或加權總和中減去的常數。 下面比較了具有不同光照的圖像的全局閾值和自適應閾值: cv.threshold使用THRESH_OTSU 在全局閾值中,使用任意選擇的值作為閾值。相反,Otsu 的方法避免了必須選擇一個值並自動確定它。 考慮只有兩個不同圖像值的圖像(雙峰圖像),其中直方圖僅包含兩個峰值。一個好的閾值應該在這兩個值的中間。類似地,Otsu 的方法從圖像直方圖中確定最佳全局閾值。 為此,使用了cv.threshold()函數,其中cv.THRESH_OTSU作為額外標誌傳遞。閾值可以任意選擇。然後算法找到最佳閾值,該閾值作為第一個輸出返回。…

  • ,

    對圖像做幾何變換

    目標 學習對圖像應用不同的幾何變換,如平移、旋轉、仿射變換等。 你會看到這些功能:cv.getPerspectiveTransform 縮放 只是調整圖像的大小。interpolation參數有下面幾種 使用範例 平移 平移影像,下面程式會將圖,x 軸平移 100,y 軸平移 50 旋轉影像 仿射變換 透視變換 這個方法可以把3D的有角度的長方形,拉成2D的長方形,很常會用來使用在3為空間的像照片、名片等拉平的效果上

  • ,

    opencv圖像運算

    理論 形態變換是一些基於圖像形狀的簡單操作。它通常在二進製圖像上執行。它需要兩個輸入,一個是我們的原始圖像,第二個稱為結構元素或內核,它決定了操作的性質。兩個基本的形態學算子是侵蝕和膨脹。然後它的變體形式如開、閉、梯度等也開始發揮作用。我們將在下圖的幫助下一一看到它們: 侵蝕cv2.erode 侵蝕的基本思想就像土壤侵蝕一樣,它侵蝕掉前景物體的邊界(總是盡量讓前景保持白色)。那它有什麼作用呢?內核在圖像中滑動(如在 2D 卷積中)。只有當內核下的所有像素都為 1 時,原始圖像中的像素(1 或 0)才會被認為是 1,否則它會被腐蝕(變為零)。 所以發生的事情是,根據內核的大小,邊界附近的所有像素都將被丟棄。因此,前景對象的厚度或大小會減少,或者圖像中的白色區域會減少。它對於去除小的白噪聲(正如我們在色彩空間章節中看到的)、分離兩個連接的對像等很有用。 在這裡,作為一個例子,我會使用一個 5×5 的內核。讓我們看看它是如何工作的: 膨脹Dilation 它與侵蝕正好相反。這裡,如果內核下的至少一個像素為“1”,則像素元素為“1”。因此它增加了圖像中的白色區域或前景對象的大小增加。通常,在去除噪聲等情況下,腐蝕之後是膨脹。因為,腐蝕去除了白噪聲,但它也縮小了我們的對象。所以我們擴大它。由於噪音消失了,它們不會回來,但我們的對象區域增加了。它還可用於連接對象的損壞部分。 去噪cv2.MORPH_OPEN 在去除噪聲方面很有用。這裡我們使用函數cv2.morphologyEx() 關閉線條 對關閉前景對象內的小孔或對像上的小黑點很有用。這個我也有使用來把canny所找到的邊緣關起來 形態梯度 這是圖像膨脹和腐蝕之間的區別。結果將看起來像對象的輪廓。 Top Hat…

  • ,

    使用opencv做圖片後製處理(如ps)

    這個部落格有一個系列文: 12th 鐵人賽 – 【錢不夠買ps的我,只好用OpenCV來修圖了!】 分享了非常多好用的圖片後製方法 這邊分享幾個我覺得不錯的 黑強化 強化有顏色區域的深度 白平衡 圖像光照校正處理 雙邊濾波 雙邊濾波(Bilateral filter)是一種非線性的濾波方法,是結合圖像的空間鄰近度和像素值相似度的一種折衷處理,同時考慮空域信息和灰度相似性,達到保邊去噪的目的。具有簡單、非迭代、局部的特點。

  • ,

    使用opencv來找出紅色區塊

    使用HSV色碼轉換器 一個好用的線上工具 色碼轉換器: https://www.peko-step.com/zhtw/tool/hsvrgb.html 若要將轉換過的顏色套用到python的色碼,記得將S,V的範圍改為0-255 然後從網站上看到的H的值(如這邊為26)要除以2,也就是13 以上圖來說,上面顯示的色碼為HSV:(26,90,223),然後填進python裡面要使用HSV:(13,90,223) python裡面的HSV識別空間 一般對顏色空間的圖像進行有效處理都是在HSV空間進行的,然後對於基本色中對應的HSV分量的範圍為: H: 0 — 180 S: 0 — 255 V: 0 — 255 基本HSV的顏色劃分 HSV的意義 HSB又稱HSV,表示一種顏色模式:在HSB模式中,H(hues)表示色相,S(saturation)表示飽和度,B(brightness)表示亮度HSB模式對應的媒介是人眼。 HSL…


17年資歷女工程師,專精於動畫、影像辨識以及即時串流程式開發。經常組織活動,邀請優秀的女性分享她們的技術專長,並在眾多場合分享自己的技術知識,也活躍於非營利組織,辦理活動來支持特殊兒及其家庭。期待用技術改變世界。

如果你認同我或想支持我的努力,歡迎請我喝一杯咖啡!讓我更有動力分享知識!