2015年9月27日 星期日

OpenCV - Mat


OpenCV reference




  • OpenCV 2.4.11.0 documentation » 
  • OpenCV API Reference » core. The Core Functionality »


    Mat是一個OpenCV裡可以存image矩陣的資料結構
    包含了image矩陣的元素型態長寬、data等資訊



    Mat型態
    Mat裡的元素型態











    Mat type 分別對應的數字  (C代表channel,有幾個通道)

    C1C2C3C4
    CV_8U081624
    CV_8S191725
    CV_16U2101826
    CV_16S3111927
    CV_32S4122028
    CV_32F5132129
    CV_64F6142230

    要取得圖片的型態,可用 int Mat::type() 這個函數





    Mat矩陣宣告與設值 code














    宣告Mat方式
    要對matrix給值
    可用cv::Scalar()對整個matrix設值,Scalar()的參數數量對應mat的通道數目
    NOTE
    CASE1如果此時將blue將自己的值改掉,blue1也會跟著改變
    CASE2如果將blue指向green,blue原本的matrix沒更動,blue1依然是藍色














    可用Mat::zeros(), Mat::ones()對整個matrix塞0 or 1

    如果要分別對matrix每個pixel設值,可以用Mat::at()
    NOTE
    Mat::at()使用之前需要matrix已有記憶體存在
    如果只宣告Mat A;
    A.at會出現Segmentation fault: 11

    gray




    Mat複製 code
    Mat有幾種複製方式,要小心是copy reference還是copy value

    沒有留言:

    張貼留言