我想检测android中文档的4个角。Iam使用opencv库。
Iam使用以下方法-(1)对图像进行灰度处理(2)应用中值模糊(3)应用自适应阈值(4)Canny边缘检测(5)找到轮廓(6)找到最大轮廓(7)获取边缘和角落最大轮廓
我的代码是
srcImg = Utils.loadResource(this, R.drawable.test1, Highgui.CV_LOAD_IMAGE_COLOR);
Imgproc.cvtColor(srcImg, srcImg, Imgproc.COLOR_BGR2GRAY);
Imgproc.medianBlur(srcImg, srcImg, 9);
Imgproc.adaptiveThreshold(srcImg, srcImg, 255, Imgproc.ADAPTIVE_THRESH_MEAN_C, Imgproc.THRESH_BINARY_INV, 11, 2);
Imgproc.Canny(srcImg, srcImg, 50, 80);
Imgproc.findContours(srcImg,contours , hierarchy, Imgproc.RETR_TREE, Imgproc.CHAIN_APPROX_SIMPLE);
Run Code Online (Sandbox Code Playgroud)
在进行精巧边缘检测后,由于许多点的轮廓边界被打破,因此图像中检测到的最大轮廓不是文档的实际边界。在某些图像中,最大轮廓线显示了边界的某些部分,但在某些图像中,轮廓线指向文档的中心或完全在文档外部
(A)在这种情况下我该如何继续?
我采用的另一种方法是应用houghs线变换并计算以90度角相交的线的交点,但在这种情况下无法获得精确点。当我放88
(B)如何处理那么多积分
(C)还是我需要遵循完全不同的方法?
我正在尝试使用改造 2.0 上传文件。除了文件之外,我还有一些其他参数要与表单数据一起发送,其中还包括布尔类型。我的请求声明是-
@Multipart
@POST("/upload/abc")
Call<UploadResponse> uploadToServer(@Part("img_file\";filename=\"image") RequestBody file,
@Part("access_token") RequestBody sessionKey,
@Part("is_final") Boolean isFinal,
@Part("sequence_id") Integer sequenceId,
@Part("entity_id") RequestBody entityId,
@Part("image_type") RequestBody imageType);
Run Code Online (Sandbox Code Playgroud)
我正在使用 GsonConverterFactory。我尝试了两种方法 -
(1) 而不是@Part("is_final") Boolean isFinal我使用@Part("is_final") RequestBody isFinal和发送它RequestBody.create(MediaType.parse("text/plain"), String.valueOf(true))
(2) @Part("is_final") Boolean isFinalBoolean.true 的使用和发送。
在这两种情况下,服务器端收到的“is_final”是 Unicode 或作为字符串而不是布尔值。
实现这一目标的最佳方法是什么