python - 在python中连接图像

标签 python opencv wavelet

任何机构都可以帮助确定这里的问题吗?

我在这里有代码连接 H 和 L 来呈现图像,每当我运行代码时,我都会得到:

np.concatenate((H,L))

>> ValueError: zero-dimensional arrays cannot be concatenated

但我不知道为什么 H 和 L 是零维的。提前致谢

import cv2
import cv
import numpy as np
c1=0.5
c2=0.25

img1=cv2.imread("Penguin-cartoon.png") ## Genuine Image

img=cv2.imread("Penguin-cartoon.png",cv2.CV_LOAD_IMAGE_GRAYSCALE)    #gray_scaled Image
A=img.astype(np.int16)
D=[]
C=[]
x,y=img.shape

B = np.empty((x,y), dtype = np.int16)
for j in range(1,y):
  for i in range (0,x/2 -1 ):
    if i==0:
        P=A[j,2*i+2]*c1

        B[j,2*i+1]=A[j,2*i+1]-P
    elif i==x/2:
        U=B[j,2*i-1]*c2
        B[j,2*i]=A[j,2*i]+U
    else :
        P=(A[j,2*i-1]+A[j,2*i+2])*c1
        B[j,2*i+1]=A[j,2*i+1]-P
        U=(B[j,2*i-1]+B[j,2*i+1])*c2
        B[j,2*i]=A[j,2*i]+U

for j in range(1,y):
    for i in range (0,x/2 -1 ):
      D=B[j,2*i-1]
      C=B[j,2*i]

H=D.astype(np.uint8)
L=C.astype(np.uint8)
np.concatenate((H,L))

最佳答案

您要串联的对象 HL 是标量而不是数组,因此会出现错误。他们在最后一个 for 循环中的赋值没有意义,

for j in range(1,y):
   for i in range (0,x/2 -1 ):
      D=B[j,2*i-1]
      C=B[j,2*i]

H=D.astype(np.uint8)
L=C.astype(np.uint8)

顺便说一句,你应该查看一些关于使用 numpy 的教程。这个想法是,在大多数情况下,您可以使用向量化的 numpy 操作,而不是在 Python 中迭代数组的像素。前者要快得多。

关于python - 在python中连接图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31196130/

相关文章:

image - 如何使用FFT根据局部方向和密度调整具有不同gabor滤波器的图像?

python - Pygame TypeError : argument 1 must be > pygame. Surface,而不是 pygame.Rect

python - R-Python : Getting Monthly, 每周索引点

xml - 如何合并opencv中haartraining生成的两个分类器xml

opencv - Haar_Training_Cascade 连续运行很长时间没有任何反应

matlab - 改进 MATLAB 矩阵构造代码 : Or, 代码 Vectorization for beginners

python dict到numpy结构化数组

Python 3 怪除法

android - 创建包含外部( native 或 Java)包的 Android 库包

matlab - 在 matlab 中实现低通 Daubechies 小波滤波器