OpenCV CV_32F - eiichiromomma/CVMLAB GitHub Wiki

(OpenCV) CV_32F

CV_32Fで定義されるfloat画像の表示について

表示される画素値

01が8bit画像での0255に相当する。 従って負値は0になり,1より大きい場合は飽和する。

従って表示する場合には0~1の範囲に正規化する必要がある。 そして8bit画像として保存する場合には255倍が必要。

サンプルソース

import cv2
import numpy as np

srcimage = np.array([[r for c in range(50)] for r in range(400)], dtype=np.float32)
srcimage -= 200.0
srcimage /= 100.0
cv2.imshow('src', srcimage)
cv2.waitKey(0)
    /*
     * show32F.cpp
     *
     *  Created on: 2011/03/10
     *      Author: Eiichiro Momma
     */
    #include <opencv2/core/core.hpp>
    #include <opencv2/highgui/highgui.hpp>
    using namespace cv;
    int main(void)
    {
      Mat srcimage(400, 50, CV_32F);
      for (int r = 0; r< srcimage.rows; r++)
        {
          for (int c = 0; c< srcimage.cols; c++)
            {
              srcimage.at<float>(r, c) = (r - 200)/100.0;
              //y=0~200 ->(-2~0), y=200~300 -> (0~1), y=300~400 -> (1~2)
            }
        }
      namedWindow("src", WINDOW_AUTOSIZE);
      imshow("src", srcimage);
      waitKey(0);
      return 0;
    }

結果

⚠️ **GitHub.com Fallback** ⚠️