03/03/2019, 21:08
(Questo messaggio è stato modificato l'ultima volta il: 04/03/2019, 16:44 da Massimiliano Dolcini.)
Salve, ho montata sul raspberry la RPi camera, e ho creato un piccolo codice in python, che scatti delle foto e le invii ad un altro pc, il problema è che quando vado ad iviarla, l'immagine mi arriva solo per metà, la parte inferiore è assente
Il codice del server che risiede sul raspberry è questo:
Il codice Client, il mio computer è questo:
Però le immagini le ricevo spezzate a metà
Il codice del server che risiede sul raspberry è questo:
Codice:
from picamera import PiCamera from time import sleep import socket import netifaces import cv2 sever_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM) server_hostname=socket.gethostname() server_ip=str(netifaces.ifaddresses('eth0')[netifaces.AF_INET][0]['addr']) print(server_hostname + " " + server_ip + "\n") host="" port=11111 sever_socket.bind((host,port)) sever_socket.listen(5) print("Waiting connections...") client_socket,client_address=sever_socket.accept() print(client_address," has connected to the server") camera=PiCamera() camera.start_preview() sleep(10) x=0 while x < 1: x=x+1 imageName=("Image"+str(x)+".jpg") #img = cv2.imread('/root/Scrivania/Image1.jpg',0) # get dimensions of image #dimensions = img.shape # height, width, number of channels in image #height = img.shape[0] #width = img.shape[1] #print('Image Dimension : ',dimensions) #print('Image Height : ',height) #print('Image Width : ',width) imagePath=("/root/Scrivania/"+imageName) client_socket.send(imageName.encode('utf-8')) camera.capture(imagePath) file=open(imageName,"rb") file_data=file.read(518144) client_socket.sendall(file_data) print("Image has been sent successfully") if(x==5): camera.stop_preview()
Il codice Client, il mio computer è questo:
Codice:
import socket
import sys
client_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host= "192.168.1.150" #input(str("Ip of server: "))
port=11111
client_socket.connect((host,port))
print("Connected")
imageName=client_socket.recv(4096)
file=open(imageName,"wb")
file_data=client_socket.recv(613696)
file.write(file_data)
file.close()
print("Image has been received succesfully")
Però le immagini le ricevo spezzate a metà