CV-基礎知識及原理總結


CV-基礎知識及原理總結

1 本體

  概念: 計算機視覺中的圖像由像素點組成。

      300*500的圖片 x*y注意是先w*h ,寬為300 高為500,x向排列300個像素點

      每個像素點即是一個數值(根據顏色通道而定)0-255 0 為黑色,255為最亮,即白色

      通道:彩色圖片,rgb,opencv bgr,三通道,即一個像素點在r通道有一個值,在g通道有一個值,b同理。合在一起顯示了最終該像素點顏色。

          黑白圖片 通道只有一個。

      

      幀:視頻每秒設備處理的一張圖片。比如每秒30幀,人眼看着就是很自然,1秒鍾處理30張圖片。

 

openCV使用

基本讀取:
  

    image=r"images/andrew_j_feustel_lmks5_rgb_test.jpg"
    base="images/cv_debug"
    faceid=cv2.imread(image)
    print(faceid.shape)
    face_part=faceid[90:170,375:475]
    import time
    save=os.path.join(base,"image_%s.jpg"%int(time.time()))
    cv2.imwrite(save,face_part)
# ######## 繪制 框
    save_rects=os.path.join(base,"image_rects_%s.jpg"%int(time.time()))
    cv2.rectangle(faceid,(375,90),(475,170),color=(0,0,255),thickness=4)
    cv2.imwrite(save_rects,faceid)
# ######## 繪制圓點
    save_cir = os.path.join(base, "image_circle_%s.jpg" % int(time.time()))
    for cor in [(100,100),(500,500)]:
        cv2.circle(faceid, cor, color=(0,0,255),radius=10)
    cv2.imwrite(save_cir, faceid)
# ######## 圖像按照顏色通道分割
    b,g,r=cv2.split(faceid)
    c=1
    for s in (b,g,r):
        cv2.imwrite("%s_%s.jpg"%(c,int(time.time())), s)
        c+=1
# ######## 三個通道的數據merge
    yuhang=cv2.merge((b,g,r))
    cv2.imwrite("yuhang.jpg", yuhang)

    blue=faceid.copy()
    blue[:,:,1]=0
    blue[:, :, 2] = 0
    cv2.imwrite("blue.jpg", blue)
# ######## 單獨建一個數據結構,不在原數據上操作,也可copy.deepcopy()
    red=faceid.copy()
# ######## 對數據0,1通道全部數據置為最暗顏色/顯示為全黑色。剩下的通道即為顯現顏色。全紅或全綠。 red[:,:,0]=0 red[:, :, 1] = 0 cv2.imwrite("red.jpg", red)

  

邊緣檢測

  1 梯度處理

def gradient_img(fn, sv):
    img=read_image_file(fn)
    # 算子sobel
    gx1=cv2.Sobel(img,cv2.CV_64F,1,0,)
    gy1=cv2.Sobel(img,cv2.CV_64F,0,1,)
    imgadd=cv2.addWeighted(gx1,0.5,gy1,0.5,0)

    # 算子scharr
    gx=cv2.Scharr(img,cv2.CV_64F,1,0)
    gy=cv2.Scharr(img,cv2.CV_64F,0,1)
    img_sch=cv2.addWeighted(gx,0.5,gy,0.5,0)

    img_all=np.hstack((imgadd,img_sch))
    cv2.imwrite(sv,img_all)

  

        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM