2015-07-02 2 views
1

Любой орган может помочь выявить проблему здесь?Соединить изображение в python

У меня есть код здесь конкатенировать H и L, чтобы представить образ и всякий раз, когда я запускаю код я получаю:

np.concatenate((H,L)) 

>> ValueError: zero-dimensional arrays cannot be concatenated 

, но я не знаю, почему H и L равны нулю размерные .THANKS в заранее

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)) 
+2

Укажите, что вы подразумеваете под конкатенацией. Поместите их бок о бок? –

ответ

1

объекты H, L вы конкатенации скаляры не массивы, следовательно, ошибка. Их назначение в последнем for цикле не делает Sens,

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) 

BTW, вы должны проверить некоторые учебники по использованию NumPy. Идея состоит в том, что в большинстве случаев вы можете использовать векторизованные операции numpy вместо итерации по пикселям вашего массива в Python. Первый намного быстрее.

Смежные вопросы