<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                使用工具Python3.5 使用包cv2,numpy 涉及函數cv2.cvtColor(),cv2.inRange() 1.轉換顏色空間 在 OpenCV 中有 超過150 種進行顏色空間轉換的方法。但是你以后就會發現我們經常用到的也就兩種:BGR?Gray 和 BGR?HSV。 我們用到的函數是cv2.cvtColor(input_image?ag),其中?ag就是轉換類型。 對于BGR?Gray的轉換,我們使用的?ag就是cv2.COLOR_BGR2GRAY。 同樣對于BGR?HSV的轉換我們用的?ag就是cv2.COLOR_BGR2HSV。 你可以下的命令得到所有可用的 ?ag。 ~~~ import cv2 flags=[i for in dir(cv2) if i startswith('COLOR_')] print (flags) ~~~ 在 OpenCV 的 HSV 格式中,H(色彩/色度)的取值范圍是 [0,179], S(飽和度)的取值范圍 [0,255],V(亮度)的取值范圍 [0,255]。但是不同的軟件使用的值可能不同。所以當你拿 OpenCV 的 HSV 值與其他軟件的 HSV 值對比時,一定要記得歸一化。 2.物體跟蹤 現在我們知怎樣將一幅圖像從 BGR 換到 HSV 了,我們可以利用 一點來提取帶有某個特定色的物體。在 HSV 顏色空間中要比在 BGR 空間中更容易表示一個特定顏色。在我們的程序中,我們提取的是一個藍色的物體。下就是就是我們做的幾步: ? 從視頻中獲取每一幀圖像 ? 將圖像換到 HSV 空間 ? 設置 HSV 閥值到藍色范圍。 ? 獲取藍色物體,當然我們可以做其他任何我們想做的事,比如:在藍色物體周圍畫一個圈。 ~~~ import cv2 import numpy as np cap = cv2.VideoCapture(0) while(1): #獲取每一幀 ret,frame = cap.read() #轉換到HSV hsv = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV) #設定藍色的閥值 lower_blue = np.array([110,50,50]) upper_blue = np.array([130,255,255]) #根據閥值構建掩模 mask = cv2.inRange(hsv,lower_blue,upper_blue) #對原圖和掩模進行位運算 res = cv2.bitwise_and(frame,frame,mask=mask) #顯示圖像 cv2.imshow('frame',frame) cv2.imshow('mask',mask) cv2.imshow('res',res) k = cv2.waitKey(5)&0xFF if k == 27: break #關閉窗口 cv2.destroyAllWindows() ~~~ ![](https://box.kancloud.cn/db32bbedd44200c65e97779351079577_1931x507.jpg) 噪點還是很多,后面會介紹如何消減噪音。 追蹤物體輪廓,以后可以找物體中心,然后跟蹤物體,可以在攝像頭前揮揮手就可以畫圖等一些有趣的事。 3.怎樣找到要跟蹤對象的HSV值 函數cv2.cvtColor()可以用到這里,現在需要傳入的參數是RGB的值而不是一幅圖。例如要找到綠色的HSV值,只需在終端輸入以下命令: ~~~ import cv2 import numpy as np green=np.uint8([0,255,0]) hsv_green=cv2.cvtColor(green,cv2.COLOR_BGR2HSV) error: /builddir/build/BUILD/opencv-2.4.6.1/ modules/imgproc/src/color.cpp:3541: error: (-215) (scn == 3 || scn == 4) && (depth == CV_8U || depth == CV_32F) in function cvtColor #scn (the number of channels of the source), #i.e. self.img.channels(), is neither 3 nor 4. # #depth (of the source), #i.e. self.img.depth(), is neither CV_8U nor CV_32F. # 所以不能用 [0,255,0] 而用 [[[0,255,0]]] # 的三層括號應分別對應于 cvArray cvMat IplImage green=np.uint8([[[0,255,0]]]) hsv_green=cv2.cvtColor(green,cv2.COLOR_BGR2HSV) print (hsv_green ) [[[60 255 255]]] ~~~ 現在你可以分別用 [H-100,100,100] 和 [H+100,255,255] 做上下閥值。除了個方法之外,你可以使用任何其他圖像編輯軟件(例如 GIMP) 或者在線換軟件找到相應的 HSV 值,但是后別忘了調節 HSV 的范圍。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看