uni-app微信小程序接入皮卡智能api进行抠图操作

博客介绍了在uni-app中遇到接入皮卡智能API时可能出现的超时问题,以及如何通过使用uploadFile接口代替request来上传二进制流,从而避免超时。关键步骤包括选择图片,转换为临时文件路径,使用uploadFile发起请求,并将返回的Base64数据保存为本地文件。
摘要由CSDN通过智能技术生成

1、接入皮卡智能api容易踩坑,切记!!!!!!

2、可以传二进制流的接口不一定要通过request formdata去请求

可以使用uploadFile api去发起请求

uni.chooseImage({
	count: 1,
	sizeType: ['original', 'compressed'],
	sourceType: ['album', 'camera'],
	success: (res) =>{
		// let obj = uploadFile(res.tempFilePaths[0], '3d/1.png')
		//之前看接口文档一直用的 request 请求一直会超时 改用uploadFile上传临时文件 相当于上传文件二进制流。
		uni.uploadFile({
		  url: 'https://picupapi.tukeli.net/api/v1/matting2?mattingType=6', //仅为示例,非真实的接口地址
		  filePath: res.tempFilePaths[0],
		  name: 'file',
		  header: {
			  //这里填入你的api key
			'APIKEY': 'YOU_API_KEY'
		  },
		  formData: {
			'user': 'test'
		  },
		  success: (response) => {
			const datas = response.data
			const fs = wx.getFileSystemManager();
			
			//血坑  返回的数据还要json在转义一遍
			const obj1 = JSON.parse(datas)
			var times = new Date().getTime();
			var codeimg = wx.env.USER_DATA_PATH + '/' + times + '.png';
			fs.writeFile({
				filePath:codeimg,
				data:obj1.data.imageBase64,
				encoding: 'base64',
				success: (res) =>{
					// uploadFile(codeimg, '3d/3.png')
					uni.navigateTo({
						url:'/pages/createDone/index'
					})
				}
			})
		  }
		});
	}
})

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
可以使用Python中的OpenCV和Dlib库来实现自动抠图人脸的功能。以下是一个简单的示例代码: ```python import cv2 import dlib # 加载Haar级联分类器,用于检测人脸 face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') # 加载Dlib的人脸检测器和面部标志检测器 detector = dlib.get_frontal_face_detector() predictor = dlib.shape_predictor('shape_predictor_68_face_landmarks.dat') # 加载图像 img = cv2.imread('input.jpg') # 转换为灰度图像 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 使用Haar级联分类器检测人脸 faces = face_cascade.detectMultiScale(gray, 1.3, 5) # 对每个检测到的人脸进行处理 for (x, y, w, h) in faces: # 使用Dlib人脸检测器检测面部标志 rect = dlib.rectangle(int(x), int(y), int(x + w), int(y + h)) landmarks = predictor(gray, rect) # 提取面部标志中的左眼、右眼、鼻子和嘴巴的坐标 left_eye = (landmarks.part(36).x, landmarks.part(36).y, landmarks.part(39).x, landmarks.part(39).y) right_eye = (landmarks.part(42).x, landmarks.part(42).y, landmarks.part(45).x, landmarks.part(45).y) nose = (landmarks.part(27).x, landmarks.part(27).y, landmarks.part(35).x, landmarks.part(35).y) mouth = (landmarks.part(48).x, landmarks.part(48).y, landmarks.part(54).x, landmarks.part(54).y) # 根据面部标志的坐标抠出人脸 mask = np.zeros_like(gray) cv2.fillPoly(mask, [np.array([left_eye, right_eye, nose, mouth], dtype=np.int32)], 255) masked_img = cv2.bitwise_and(img, img, mask=mask) # 显示结果 cv2.imshow('Input', img) cv2.imshow('Output', masked_img) cv2.waitKey(0) ``` 在上面的代码中,我们首先使用Haar级联分类器检测人脸,然后使用Dlib人脸检测器和面部标志检测器提取面部标志的坐标。最后,我们根据面部标志的坐标抠出人脸,并显示结果。注意,需要先安装OpenCV和Dlib库,并下载相应的分类器和模型文件。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值