簡體   English   中英

如何檢測 ycrcb 中的白色?

[英]how to detect color white in ycrcb?

我想在 python 中使用 open cv 來檢測白色物體,但是在 ycbcr 中定義下白色和上白色時遇到問題。 我嘗試制作程序,但程序沒有得到正確的結果來檢測對象。 這是我的代碼:

 ycrcb = cv.cvtColor(rgb, cv.COLOR_BGR2YCrCb)
 lower_white = np.array([205, 128, 128], dtype=np.uint8)
 upper_white = np.array([235, 128, 128], dtype=np.uint8)
 img = cv.inRange(ycrcb, lower_white, upper_white)

我嘗試使用結構元素進行檢測並發送到形態學:

se_3 = cv.getStructuringElement(cv.MORPH_RECT,(3,3))
dst_dilate = cv.dilate(img, se_3, iterations = 1)

並使用按位和將其放在一起:

res = cv.bitwise_and(rgb,rgb, mask= dst_dilate)

我盡力了,但結果不正確,我需要你的意見,改變哪一部分以獲得更好的結果。

對象都是鳥

最簡單的方法是加載圖像,將其轉換為所需的色彩空間並拆分通道,將它們並排放置。 然后使用系統的“顏色滴管工具” (macOS 上的“數字顏色計” )查看您感興趣的區域中各個通道的值:

import cv2

# Load image
im = cv2.imread('qAK68.jpg')

# Convert to YCrCb colourspace
YCrCb = cv2.cvtColor(im, cv2.COLOR_BGR2YCrCb)

# Split channels and lay out side-by-sise, Y on the left, Cr then Cb on the right
Y, Cr, Cb = cv2.split(YCrCb)
hstack = np.hstack((Y,Cr,Cb))

在此處輸入圖像描述

您應該看到您需要大致以下范圍:

  • Y 60..255
  • Cr 120..136
  • CB Cb

如果您沒有“Color Dropper”工具,只需在此處轉到ImageJ在線工具並在下面上傳我的輸出圖像並將鼠標懸停在其上即可查看如下值:

在此處輸入圖像描述


如果你在 Linux 上,你可以獲得一個名為gpick的顏色滴管:

sudo apt install gpick

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM