【OpenCV】高手勿入! 半小時學會基本操作 8
- 概述
- ROI
- 泛洪填充
概述
OpenCV 是一個跨平臺的計算機視覺庫, 支持多語言, 功能強大. 今天小白就帶大家一起攜手走進 OpenCV 的世界. (第 8 課)

ROI
ROI (Region of Interest) 即感興趣區域, 就是在影像中分析的重點.

例子:
import cv2
# 讀取圖片
img = cv2.imread("girl3.jpg")
# ROI
face = img[100:750, 1000:1600]
# 獲取灰度圖
face_gray = cv2.cvtColor(face, cv2.COLOR_BGR2GRAY)
face_gray = cv2.cvtColor(face_gray, cv2.COLOR_GRAY2BGR)
# 用灰度圖替換臉
img[100:750, 1000:1600] = face_gray
# 圖片展示
cv2.imshow("ROI", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 保存圖片
cv2.imwrite("ROI.jpg", img)
輸出結果:

泛洪填充
泛洪填充演算法 (Flood Fill Algorithm), 是從一個點開始附近的像素點填充成新的顏色, 直到封閉區內所有的像素點都被填充新顏色為止.

格式:
cv2.floodFill(image, mask, seedPoint, newVal, loDiff=None, upDiff=None, flags=None)
引數:
- image: 輸入圖片
- mask: 掩碼, 比 image 長寬高 2
- seedPoint: 泛洪演算法的起始點
- newVal: 重繪區域的新值 (顏色)
- loDiff: seePoint - loDiff 下限
- upDiff: seePoint - upDiff 上限
- flags: 操作標志符
- LOODFILL_FIXED_RANGE: 改變影像, 泛洪填充
- FLOODFILL_MASK_ONLY: 不改變影像, 只填充 mask 本身, 忽略新的顏色值引數
例 1:
import numpy as np
import cv2
def flood_fill(image):
"""泛洪"""
# 深拷貝
image_copy = image.copy()
# 獲取高寬
h, w = image.shape[:2]
# 獲取mask
mask = np.zeros([h + 2, w + 2], np.uint8)
# 泛洪
cv2.floodFill(image_copy, mask, (1000, 200), (0, 255, 0), (30, 30, 30), (50, 50, 50), cv2.FLOODFILL_FIXED_RANGE)
# 圖片展示
cv2.imshow("flood_fill", image_copy)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 回傳
return image_copy
if __name__ == "__main__":
# 讀取圖片
img = cv2.imread("girl3.jpg")
# 獲取泛洪影像
flood_fill = flood_fill(img)
# 保存圖片
cv2.imwrite("flood_fill.jpg", flood_fill)
輸出結果:

例 2:
import numpy as np
import cv2
def flood_fill():
"""泛洪"""
# 獲取圖片
image = np.zeros([400, 400, 3], np.uint8)
# 獲取mask
mask = np.ones([400 + 2, 400 + 2, 1], np.uint8)
mask[101:301, 101:301] = 0
# 泛洪
cv2.floodFill(image, mask, (200, 200), (100, 2, 255), cv2.FLOODFILL_MASK_ONLY)
# 圖片展示
cv2.imshow("flood_fill", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
# 回傳
return image
if __name__ == "__main__":
# 讀取圖片
img = cv2.imread("girl3.jpg")
# 獲取泛洪影像
flood_fill = flood_fill()
# 保存圖片
cv2.imwrite("flood_fill.jpg", flood_fill)
輸出結果:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/290537.html
標籤:其他
