TypeError: unsupported operand type(s) for -: 'NoneType' and 'No
S.Mehdi01
Messages postés
2
Statut
Membre
-
S.Mehdi01 Messages postés 2 Statut Membre -
S.Mehdi01 Messages postés 2 Statut Membre -
je suis nouveau dans la programmation python et je suis sur le point de réaliser un scanner 3d linaire et j'ai eu des problème lors de la compilation du code
"import numpy as np
import scipy
import scipy.ndimage as ndimage
import scipy.ndimage.filters as filters
import matplotlib.pyplot as plt
import cv2
fname = '/home/mehdi/Bureau/mehdi.jpg'
neighborhood_size = 5
threshold = 1500
scale1 = 0.1292
scale2 = 0.03175
data = cv2.imread('fname',0)
data_max = filters.maximum_filter(data, neighborhood_size)
maxima = (data == data_max)
data_min = filters.minimum_filter(data, neighborhood_size)
diff = ((data_max - data_min) > threshold)
maxima[diff == 0] = 0
labeled, num_objects = ndimage.label(maxima)
slices = ndimage.find_objects(labeled)
for dy,dx in slices:
x_center = (dx.start + dx.stop - 1)/2
y_center = (dy.start + dy.stop - 1)/2
if x_center > 500 and x_center < 621:
xx1.append((x_center*scale1)+(fileloop*scale2))
yy1.append(y_center*scale1)
zz1.append((621-x_center)*1.0*scale1)"
et voici le message d'erreur
" diff = ((data_max + data_min) > threshold)
TypeError: unsupported operand type(s) for -: 'NoneType' and 'NoneType'"
"import numpy as np
import scipy
import scipy.ndimage as ndimage
import scipy.ndimage.filters as filters
import matplotlib.pyplot as plt
import cv2
fname = '/home/mehdi/Bureau/mehdi.jpg'
neighborhood_size = 5
threshold = 1500
scale1 = 0.1292
scale2 = 0.03175
data = cv2.imread('fname',0)
data_max = filters.maximum_filter(data, neighborhood_size)
maxima = (data == data_max)
data_min = filters.minimum_filter(data, neighborhood_size)
diff = ((data_max - data_min) > threshold)
maxima[diff == 0] = 0
labeled, num_objects = ndimage.label(maxima)
slices = ndimage.find_objects(labeled)
for dy,dx in slices:
x_center = (dx.start + dx.stop - 1)/2
y_center = (dy.start + dy.stop - 1)/2
if x_center > 500 and x_center < 621:
xx1.append((x_center*scale1)+(fileloop*scale2))
yy1.append(y_center*scale1)
zz1.append((621-x_center)*1.0*scale1)"
et voici le message d'erreur
" diff = ((data_max + data_min) > threshold)
TypeError: unsupported operand type(s) for -: 'NoneType' and 'NoneType'"
A voir également:
- TypeError: unsupported operand type(s) for -: 'NoneType' and 'No
- TypeError: 'int' object is not iterable ✓ - Forum Python
- TypeError: 'NoneType' object is not subscriptable - Forum Python
- TypeError: 'float' object is not subscriptable - Forum Python
- Typeerror: list.append() takes no keyword arguments - Forum Python
- TypeError : 'builtin function or method' et '_getitem__' ✓ - Forum Python
2 réponses
import cv2
import numpy as np
import scipy
import scipy.ndimage as ndimage
import scipy.ndimage.filters as filters
import matplotlib.pyplot as plt
neighborhood_size = 4
threshold = 100
scale1 = 0.1292
scale2 = 0.03175
cv2.namedWindow("Image")
data = cv2.imread('/home/mehdi/Bureau/mehdi.jpg',0)
data_max = scipy.ndimage.filters.maximum_filter(data, 4)
maxima = (data == data_max)
data_min = scipy.ndimage.filters.minimum_filter(data, 4)
diff = ((data_max - data_min) > threshold)
maxima[diff == 0] = 0
labeled, num_objects = ndimage.label(maxima)
slices = ndimage.find_objects(labeled)
for dy,dx in slices:
x_center = (dx.start + dx.stop - 1)/2
y_center = (dy.start + dy.stop - 1)/2
if x_center > 500 and x_center < 621:
xx1.append((x_center*scale1)+(fileloop*scale2))
yy1.append(y_center*scale1)
zz1.append((621-x_center)*1.0*scale1)
if x_center > 621 and x_center < 800:
xx2.append((x_center*scale1)+(fileloop*scale2))
yy2.append(y_center*scale1)
zz2.append((x_center-621)*1.0*scale1)
pointcloud1 = zip(xx1,yy1,zz1)
pointcloud2 = zip(xx2,yy2,zz2)
np.savetxt('test1.asc',pointcloud1,fmt='%-7.2f')
np.savetxt('test2.asc',pointcloud2,fmt='%-7.2f')
cv2.imshow("Image",data)
cv2.waitKey(0)
cv2.destroyALLWindows()
import numpy as np
import scipy
import scipy.ndimage as ndimage
import scipy.ndimage.filters as filters
import matplotlib.pyplot as plt
neighborhood_size = 4
threshold = 100
scale1 = 0.1292
scale2 = 0.03175
cv2.namedWindow("Image")
data = cv2.imread('/home/mehdi/Bureau/mehdi.jpg',0)
data_max = scipy.ndimage.filters.maximum_filter(data, 4)
maxima = (data == data_max)
data_min = scipy.ndimage.filters.minimum_filter(data, 4)
diff = ((data_max - data_min) > threshold)
maxima[diff == 0] = 0
labeled, num_objects = ndimage.label(maxima)
slices = ndimage.find_objects(labeled)
for dy,dx in slices:
x_center = (dx.start + dx.stop - 1)/2
y_center = (dy.start + dy.stop - 1)/2
if x_center > 500 and x_center < 621:
xx1.append((x_center*scale1)+(fileloop*scale2))
yy1.append(y_center*scale1)
zz1.append((621-x_center)*1.0*scale1)
if x_center > 621 and x_center < 800:
xx2.append((x_center*scale1)+(fileloop*scale2))
yy2.append(y_center*scale1)
zz2.append((x_center-621)*1.0*scale1)
pointcloud1 = zip(xx1,yy1,zz1)
pointcloud2 = zip(xx2,yy2,zz2)
np.savetxt('test1.asc',pointcloud1,fmt='%-7.2f')
np.savetxt('test2.asc',pointcloud2,fmt='%-7.2f')
cv2.imshow("Image",data)
cv2.waitKey(0)
cv2.destroyALLWindows()