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;
}