OpenCV Python:规范化图像

时间:2016-11-17 02:57:30

标签: python opencv

我是OpenCV的新手。我想做一些与规范化相关的预处理。我想将我的图像标准化为一定的大小。以下代码的结果给了我一个黑色图像。有人能指出我到底做错了什么吗?我输入的图像是黑白图像

import cv2 as cv
import numpy as np

img = cv.imread(path)
normalizedImg = np.zeros((800, 800))
cv.normalize(img,  normalizedImg, 0, 255, cv.NORM_MINMAX)
cv.imshow('dst_rt', self.normalizedImg)
cv.waitKey(0)
cv.destroyAllWindows()

3 个答案:

答案 0 :(得分:7)

可以在http://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html#cv2.normalize看到,有一个→ dst表示normalize函数的结果作为输出参数返回。该函数不会就地更改输入参数dst。 (self.行中的cv.imshow('dst_rt', self.normalizedImg)是拼写错误)

import cv2 as cv
import numpy as np
path = r"C:\Users\Public\Pictures\Sample Pictures\Hydrangeas.jpg"
img = cv.imread(path)
normalizedImg = np.zeros((800, 800))
normalizedImg = cv.normalize(img,  normalizedImg, 0, 255, cv.NORM_MINMAX)
cv.imshow('dst_rt', normalizedImg)
cv.waitKey(0)
cv.destroyAllWindows()

答案 1 :(得分:4)

它给你一个黑色图像,因为你可能在img和normalizedImg中使用不同的大小。

import cv2 as cv

img = cv.imread(path)
img = cv.resize(img, (800, 800))
cv.normalize(img, img, 0, 255, cv.NORM_MINMAX)

cv.imshow('dst_rt', img)
cv.waitKey(0)
cv.destroyAllWindows()

答案 2 :(得分:1)

当您致电cv.imshow()时,您使用的是self.normalizedImg,而不是normalizedImg

自我。用于标识类成员及其在您编写的代码中的使用是不合适的。它甚至不应该像书面那样运行。但是,我假设此代码已从类定义中提取,但您必须在命名变量中保持一致,self.normalizedImgnormalizedImg不同。