iT邦幫忙

2024 iThome 鐵人賽

DAY 29
0
Python

探索 Python 世界:從語法基礎到圖像魔法系列 第 29

探索 Python 世界:從語法基礎到圖像魔法 Day29

  • 分享至 

  • xImage
  •  

OpenCV 顏色識別與範圍選取

顏色辨別的功能有什麼用?

顏色辨別技術是一個強大的工具,能夠提高效率、增強安全性,同時可以被應用在各種行業,從而改善人們的生活質量;例如:在農業中,可以透過顏色辨別技術來檢查作物的健康狀態,透過分析植物的顏色變化,可以讓農民判斷作物是否缺乏水分或營養。

實作範例

import cv2
import numpy as np

# 讀取圖片
image = cv2.imread('park.png')  # 替換成你的圖片路徑

# 調整圖片大小為 700x500
resized_image = cv2.resize(image, (700, 500))

# 將圖片從 BGR 轉換為 HSV
hsv_image = cv2.cvtColor(resized_image, cv2.COLOR_BGR2HSV)

# 定義紅色的範圍
lower_red_1 = np.array([0, 120, 70])
upper_red_1 = np.array([10, 255, 255])

lower_red_2 = np.array([170, 120, 70])
upper_red_2 = np.array([180, 255, 255])

# 產生遮罩,只保留紅色範圍
mask1 = cv2.inRange(hsv_image, lower_red_1, upper_red_1)
mask2 = cv2.inRange(hsv_image, lower_red_2, upper_red_2)
mask = mask1 | mask2  # 將兩個遮罩結合

# 使用遮罩篩選出範圍內的紅色
result = cv2.bitwise_and(resized_image, resized_image, mask=mask)

# 顯示原始圖像和紅色篩選後的圖像
cv2.imshow('Resized Image', resized_image)
cv2.imshow('Filtered Red Color', result)

# 等待按鍵後關閉所有窗口
cv2.waitKey(0)
cv2.destroyAllWindows()

在這個範例中,我們首先讀取一張圖片,然後將其調整為 700x500 像素。接著,將圖片從 BGR 顏色空間轉換為 HSV 顏色空間,這樣更容易進行顏色篩選。我們定義了紅色的範圍,並利用遮罩將紅色區域篩選出來,最後顯示原始圖像和篩選後的圖像。

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20241006/20168687KzCAY8A2MX.png

今天只是簡單的想讓各位了解使用 OpenCV 進行顏色識別會是怎樣的情形,因此並沒有花太多心思在尋找適合的圖片讓大家去琢磨,只是找了一個可以辨識的圖片,讓大家了解,可以透過這種技術,從複雜的場景中提取出關鍵。

參考資料:https://steam.oxxostudio.tw/category/python/ai/ai-cars-dectection.html


上一篇
探索 Python 世界:從語法基礎到圖像魔法 Day28
下一篇
探索 Python 世界:從語法基礎到圖像魔法Day30
系列文
探索 Python 世界:從語法基礎到圖像魔法30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言