相关疑难解决方法(0)

Python OpenCV Image到json传输的字节字符串

我使用python3numpy,scipy和opencv.

我正在尝试将通过OpenCV和连接的相机接口读取的图像转换为二进制字符串,以通过某种网络连接将其发送到json对象中.

我已经尝试将数组作为jpg进行插入并解码UTF-16字符串,但是我得不到可用的结果.例如,用

img = get_image()
converted = cv2.imencode('.jpg', img)[1].tostring()
print(converted)
Run Code Online (Sandbox Code Playgroud)

我得到一个字节字符串作为结果:

B'\ XFF\XD8\XFF\xe0\X00\x10JFIF\X00\X01\X01\X00\X00\X01\X00\X01\X00\X00\XFF\XDB\x00C\X00\X02\X01\X01\X01\X01\X01\X02\X01 ....

但是这些数据不能用作json对象的内容,因为它包含无效字符.有没有办法可以显示这个字符串后面的实际字节?我相信\ xff表示字节值FF,所以我需要像FFD8FFE0那样的字符串...依此类推,而不是\ xff\xd8\xff\xe0.我究竟做错了什么?

我尝试在上面的代码之后将其编码为UTF-8和UTF16,但是我得到了几个错误:

utf_string = converted.decode('utf-16-le')
Run Code Online (Sandbox Code Playgroud)

UnicodeDecodeError:'utf-16-le'编解码器无法解码位置0-1中的字节:非法UTF-16代理

text = strrrrrr.decode('utf-8')
Run Code Online (Sandbox Code Playgroud)

UnicodeDecodeError:'utf-8'编解码器无法解码位置0的字节0xff:无效的起始字节

我无法找到一种方法来做到这一点.

我也尝试将其转换为base64编码的字符串,如 http://www.programcreek.com/2013/09/convert-image-to-string-in-python/中所述, 但这也不起作用.(这个解决方案不是首选,因为它需要将图像临时写入磁盘,这不是我需要的.最好是图像只能保存在内存中,而不能保存在磁盘上.)

解决方案应包含一种将图像编码为json-conform字符串的方法,以及将其解码回numpy-array的方法,因此可以再次使用cv2.imshow().

谢谢你的帮助.

python opencv

16
推荐指数
2
解决办法
2万
查看次数

OpenCV:在Python中从NumPy转换为IplImage

我有一个使用cv2.imread()加载的图像.这将返回一个NumPy数组.但是,我需要将其传递给需要IplImage格式数据的第三方API.

我已经搜索了所有可能的内容,并且我发现了从IplImage转换为CvMat的实例,并且我发现了一些在C++中转换的引用,但是在Python中没有从NumPy转换为IplImage.是否提供了可以执行此转换的功能?

python opencv

8
推荐指数
1
解决办法
9443
查看次数

可以通过cv2直接加载上传的图像吗?

我在内存中有一个上传的文件.我想用cv2操纵文件.目前,我将文件写入磁盘,然后使用cv2读取它.如何跳过编写文件并直接用cv2加载?

file = request.files['file']
# if file and allowed_file(file.filename):

# save file            
filename = secure_filename(file.filename)
file_path = os.path.join(dressrank.config['SHOW_IMG_FOLDER'], filename);
file.save(file_path)
img_path = file_path

# COLOR FATURE EXTRACTION
img = read_img(img_path)
img =img_resize(img, 500)
Run Code Online (Sandbox Code Playgroud)

python opencv flask

7
推荐指数
1
解决办法
4406
查看次数

使用CV2读取图像文件(文件存储对象)

我正在通过curl将图像发送到烧瓶服务器,我正在使用此curl命令

curl -F "file=@image.jpg" http://localhost:8000/home
Run Code Online (Sandbox Code Playgroud)

我试图在服务器端使用CV2读取文件.

在服务器端,我通过此代码处理图像

@app.route('/home', methods=['POST'])
def home():
    data =request.files['file']
    img = cv2.imread(data)
    fact_resp= model.predict(img)
    return jsonify(fact_resp)
Run Code Online (Sandbox Code Playgroud)

我收到这个错误 -

img = cv2.imread(data)
TypeError: expected string or Unicode object, FileStorage found
Run Code Online (Sandbox Code Playgroud)

如何在服务器端使用CV2读取文件?

谢谢!

curl image flask cv2

6
推荐指数
3
解决办法
7698
查看次数

标签 统计

opencv ×3

python ×3

flask ×2

curl ×1

cv2 ×1

image ×1