美文网首页
011 像素归一化

011 像素归一化

作者: 几时见得清梦 | 来源:发表于2019-08-15 22:34 被阅读0次
  • API:normalize
图像归一化的四种方式
  1. 图像运算时转为float32以保持精度,显示时转为uint8类型。

在 NORM_MINMAX 模式下,alpha表示归一化后的最小值,beta表示归一化后的最大值。
在NORM_L1、NORM_L2、NORM_INF 模式下,alpha表示执行相应归一化后矩阵的范数值,beta不使用。

C++

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, const char *argv[])
{
    Mat src = imread("D:/vcprojects/images/test.png");
    if (src.empty()) {
        printf("could not load image...\n");
        return -1;
    }
    namedWindow("input", WINDOW_AUTOSIZE);
    imshow("input", src);

    Mat gray, gray_f;
    cvtColor(src, gray, COLOR_BGR2GRAY);

    // 转换为浮点数类型数组
    gray.convertTo(gray, CV_32F); // 从CV_8UC1转为CV_32F

    // scale and shift by NORM_MINMAX
    Mat dst = Mat::zeros(gray.size(), CV_32FC1);
    normalize(gray, dst, 1.0, 0, NORM_MINMAX);
    Mat result = dst * 255;
    result.convertTo(dst, CV_8UC1);
    imshow("NORM_MINMAX", dst);

    // scale and shift by NORM_INF
    normalize(gray, dst, 1.0, 0, NORM_INF);
    result = dst * 255;
    result.convertTo(dst, CV_8UC1);
    imshow("NORM_INF", dst);

    // scale and shift by NORM_L1
    normalize(gray, dst, 1.0, 0, NORM_L1);
    result = dst * 10000000;
    result.convertTo(dst, CV_8UC1);
    imshow("NORM_L1", dst);

    // scale and shift by NORM_L2
    normalize(gray, dst, 1.0, 0, NORM_L2);
    result = dst * 10000;
    result.convertTo(dst, CV_8UC1);
    imshow("NORM_L2", dst);

    waitKey(0);
    return 0;
}

Python

import cv2 as cv
import numpy as np

src = cv.imread("D:/vcprojects/images/test.png")
cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
cv.imshow("input", src)
gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)

# 转换为浮点数类型数组
gray = np.float32(gray) # 若不转,
print(gray)

# scale and shift by NORM_MINMAX
dst = np.zeros(gray.shape, dtype=np.float32) # 数据类型要采用float32
cv.normalize(gray, dst=dst, alpha=0, beta=1.0, norm_type=cv.NORM_MINMAX)
print(dst)
cv.imshow("NORM_MINMAX", np.uint8(dst*255)) # 转为uint8格式

# scale and shift by NORM_INF
dst = np.zeros(gray.shape, dtype=np.float32)
cv.normalize(gray, dst=dst, alpha=1.0, beta=0, norm_type=cv.NORM_INF)
print(dst)
cv.imshow("NORM_INF", np.uint8(dst*255))

# scale and shift by NORM_L1
dst = np.zeros(gray.shape, dtype=np.float32)
cv.normalize(gray, dst=dst, alpha=1.0, beta=0, norm_type=cv.NORM_L1)
print(dst)
cv.imshow("NORM_L1", np.uint8(dst*10000000))

# scale and shift by NORM_L2
dst = np.zeros(gray.shape, dtype=np.float32)
cv.normalize(gray, dst=dst, alpha=1.0, beta=0, norm_type=cv.NORM_L2)
print(dst)
cv.imshow("NORM_L2", np.uint8(dst*10000))

cv.waitKey(0)
cv.destroyAllWindows()

相关文章

  • 011 像素归一化

    API:normalize 图像运算时转为float32以保持精度,显示时转为uint8类型。 在 NORM_MI...

  • 010 图像像素值统计

    用途:统计直方图;求取图像像素最大值、最小值,对图像进行归一化;求取图像均值、方差,进行分割或归一化;根据方差判断...

  • 图像数值的表示

    1、RGB表示方式 1.1、浮点表示 归一化表示,取值范围0.0~1.0,如openGL对每个子像素点的表示方式。...

  • 数据归一化 Feature Scaling

    数据归一化 最值归一化 均值方差归一化

  • 数据归一化

    什么是数据归一化 ? 具体有哪些归一化 ? 为什么要归一化 ? 1. 什么是数据归一化 ? standardize...

  • Stata--标准化、归一化

    由来 标准化、归一化是我们经常遇到的需求,如下式子 标准化 归一化 整体标准化和归一化 分组标准化和归一化

  • [Stay Sharp]特征归一化

    特征归一化 零均值归一化(Z-score normalization) 零均值归一化会把特征值映射到均值为0、标准...

  • 六、数据特征预处理

    1 归一化 sklearn.preprocessing import MinMaxScaler(一)归一化处理:统...

  • 问卷数据的标准化

    1 Normalization Method(标准化 / 归一化) 1.1 归一化方法(Normalization...

  • 归一化、标准化和正则化及代码实现

    归一化、标准化和正则化都是对数据进行处理的,那么这三种有什么区别呢? 归一化(normalization) 归一化...

网友评论

      本文标题:011 像素归一化

      本文链接:https://www.haomeiwen.com/subject/qsijjctx.html