[OpenCV][Python]利用cv2.inRange換個顏色

閱讀時間約 2 分鐘

上一篇提到利用cv2.inRangex,建立遮罩來過濾出紅球。這次我們稍微更動一下程式碼,將紅球變顏色。

[OpenCV][Python]利用cv2.inRange搭配cv2.bitwise_and過濾紅球

結果圖

將紅球改變顏色成籃球

raw-image

程式範例

import cv2
import numpy as np

# 讀取圖像 預設讀取BGR
image = cv2.imread('D:/CRABpy/write/RGB.png')
result = image.copy()
# 設定 RGB 顏色範圍
# 這裡設置的是遮罩範圍
lower_bound = np.array([0, 0, 100])
upper_bound = np.array([50, 50, 255])

# 遮罩
mask = cv2.inRange(image, lower_bound, upper_bound)

# 將遮罩應用於原圖像,替換掉顏色
result[mask > 0] = [255,0,0]

# 顯示結果
cv2.imshow('Original Image', image)
cv2.imshow('Mask', mask)
cv2.imshow('result Image', result)
cv2.waitKey(0)

程式碼解說

result[mask > 0] = [255,0,0]

result 影像中對應於 mask 影像中值大於 0 的所有像素的顏色更改為紅色(即 [255, 0, 0]


具體例子:

假設有一個 mask 陣列如下:

codemask = [
[0, 1, 0],
[1, 1, 0],
[0, 0, 1]
]

還有一個 result 影像陣列:

coderesult = [
[[0, 0, 0], [0, 0, 0], [0, 0, 0]],
[[0, 0, 0], [0, 0, 0], [0, 0, 0]],
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
]

執行 result[mask > 0] = [255, 0, 0] 之後, result 變為:

coderesult = [
[[0, 0, 0], [255, 0, 0], [0, 0, 0]],
[[255, 0, 0], [255, 0, 0], [0, 0, 0]],
[[0, 0, 0], [0, 0, 0], [255, 0, 0]]
]

也就是說, mask 中大於 0 的位置的像素在 result 中被更改為紅色 [255, 0, 0]


52會員
110內容數
Python程式設計師,不是在學習就是在學習的路上
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
【🔒 影像辨識 - OpenCV系列】Ep.4 關於FPSFrames per second簡稱FPS, 也就是每秒幾個幀數的意思, 平常我們看到的影片背後其實都是一張張圖片的組成, 而這一幅畫面就是影片的每一幀。 由於人眼的特殊生理結構, 畫面的幀數只要高於每秒10 - 12張的時候就會認為是連貫的, 這也就是為什麼電影膠片是一格格的拍攝出來, 但是藉
Thumbnail
avatar
阿Han
2024-04-19
【💊 Python的解憂錦囊】OpenCV如何讀取特定時間區段? 當我們在進行影像處理時, 在Python的世界最常聽到的就是OpenCV, 而我們在處理影片時也會想要僅針對某時間段的影片進行處理, 今天我們就來教您如何透過OpenCV來讀取特定的時間區段。 在進入主題之前, 有一些基本概念務必先行建立, 一個影片是由多張圖片組成的, 因此最小單元為一張圖
Thumbnail
avatar
阿Han
2024-03-05
【🔒 影像辨識 - OpenCV系列】Ep.3 點陣圖與向量圖點陣圖 點陣圖是由許多方格像素組成的圖片, 因此我們常常在將圖片放大時會呈現像是馬賽克的狀況, 假設期望圖片越清晰那所需要的像素會較多個, 因此空間耗用量也相對較大。 常見的格式有: .JPG .PNG .GIF .BMP .TIFF等格式。 繪製程式碼: 向量圖 向量
Thumbnail
avatar
阿Han
2024-02-22
【🔒 影像辨識 - OpenCV系列】Ep.2 關於影像的顏色繼上次分享的「【🔒 影像辨識 - 影像處理】Ep.1 關於影像的基本單位, 相信我們對於影像的儲存應該有了基本的認識了, 那麼接下來我們會需要的是了解顏色的組成。 我們除了在文章裡講述概念之外, 也會提供實作的數位作品分享給大家, 請大家根據範例學習與練習。 關於顏色 灰階的時代 早期尚未
Thumbnail
avatar
阿Han
2024-02-07
【🔒 影像辨識 - OpenCV系列】Ep.1 關於影像的基本單位歡迎來到「阿Han的軟體心法實戰營 - 影像處理」系列的文章區,我們會針對影像處理的相關知識、開發技巧進行分享,並教你手把手用程式寫出屬於自己的影像處理程式, 當然也會包括AI模型訓練的部分,就讓我們一起來探索影像處理的領域吧! 在進入影像辨識的世界之前, 我們先來了解一下關於解析度的基本概念吧!
Thumbnail
avatar
阿Han
2024-02-04
樹莓派筆記RaspberryPi -(11) Bullseye安裝python OpenCV模組在樹莓派安裝OpenCV的紀錄。板子是樹莓派3B(沒有+),系統raspbian bullseye 32bit灌到USB隨身碟。
Thumbnail
avatar
hls Ding
2023-02-02
OpenCV 圖轉動漫#安裝 OpenCV 相關套件 pip install opencv-python pip install opencv-contrib-python pip install matplotlib
Thumbnail
avatar
吳佳鑫
2022-12-23
圖形辨識筆記-OPEN CV (haarcascades )Haar Cascade classifier OpenCV 官方 Github:https://github.com/opencv/opencv/tree/4.x/data 人臉特徵模型:haarcascade_frontalface_default.xml 資料來源: https://steam
avatar
吳佳鑫
2022-11-10
opencv and matplotlib differentopencv is use BGR color matplotlib is use RGB color 顯示圖片 opencv matplotlib
avatar
John
2022-05-08