Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用OpenCV规范化图像会导致TypeError_Python_Opencv - Fatal编程技术网

Python 使用OpenCV规范化图像会导致TypeError

Python 使用OpenCV规范化图像会导致TypeError,python,opencv,Python,Opencv,我想规范化一个python数组,如下所示 array([[ 11.40734340-0.29832373j, 11.43838953-0.2330848j , 11.51347743+0.05464141j, ..., 11.66593745-0.23486117j, 11.48996430-0.18709683j, 11.47948371-0.28934914j], [ 11.53463463-0.20148586j, 11.58397234-0.103846

我想规范化一个python数组,如下所示

array([[ 11.40734340-0.29832373j,  11.43838953-0.2330848j ,
     11.51347743+0.05464141j, ...,  11.66593745-0.23486117j,
     11.48996430-0.18709683j,  11.47948371-0.28934914j],
   [ 11.53463463-0.20148586j,  11.58397234-0.10384628j,
     11.59314978+0.18854025j, ...,  11.44680114-0.38295714j,
     11.44062107-0.30858363j,  11.49362217-0.32352874j],
   [ 11.47423737-0.09162011j,  11.66564959+0.16699415j,
     11.57411499+0.27745924j, ...,  11.30369153-0.28317958j,
     11.60371236-0.33782883j,  11.51040077-0.28672312j],
   ..., 
   [ 11.15258074-0.19047382j,  11.21263244-0.26008457j,
     11.23572965-0.27349975j, ...,  11.26901318-0.25710196j,
     11.26925144-0.20500497j,  11.12739736-0.22942166j],
   [ 11.27209183-0.14971003j,  11.34077096-0.18473887j,
     11.28326221-0.40778278j, ...,  11.33564537-0.24436556j,
     11.42304835-0.26064881j,  11.37050821-0.21830381j],
   [ 11.39713540-0.33105119j,  11.47700146-0.22564029j,
     11.42977268-0.20060011j, ...,  11.37402085-0.22322532j,
     11.43500243-0.15516771j,  11.45758000-0.20336809j]])
设置为介于0和255之间的实值,以便将其保存为灰度图像。我在OpenCV上运气不佳:

image = complex_array.real
output = image
cv2.normalize(image, output, alpha=0, beta=255, norm_type=cv2.NORM_MINMAX, dtype=cv2.CV_8U)

这会产生一个错误:
TypeError:输出数组dst的布局与cv::Mat不兼容(步骤[ndims-1]!=elemsize或步骤[1]!=elemsize*nchannels)
。在
normalize()
的上下文中,这意味着什么?

输出与
图像
是一样的,因此它的数据类型不是您想要得到的CV_8U。考虑到由于数据类型的变化,无论如何都必须进行重新分配,为什么不直接执行
output=cv2.normalize呢(图像,alpha…
而不是您显示的代码片段的最后两行?@DanMašek您不能这样做,至少在我使用的OpenCV 3.2.0中不行。第二个参数是必需的。我如何创建
输出
不是作为
图像的副本,而是作为CV_8U类型的数组?我找到了一个适合我的答案这里的第一个问题:那么
cv2.convertScaleAbs
就起作用了。@DanMašek如果你想发布答案,我会接受:)