小编R. *_*Kut的帖子

Android Mobile Vision文本识别缩放到找到的坐标

我正在使用Googles Mobile Vision API识别静态位图中的文本(数字).现在我想放大到找到号码的地方.

这就是我扫描Bitmap并获取x和y坐标的方法

Point [] p = textBlock.getCornerPoints();

public void Test(Bitmap bitmap) {
    Context context = getApplicationContext();
    TextRecognizer ocrFrame = new TextRecognizer.Builder(context).build();
    Frame frame = new Frame.Builder().setBitmap(bitmap).build();
    ByteBuffer byteBuffer = frame.getGrayscaleImageData();

    if (ocrFrame.isOperational()) {
        Log.e(TAG, "Textrecognizer is operational");
    }
    SparseArray<TextBlock> textBlocks = ocrFrame.detect(frame);

    for (int i = 0; i < textBlocks.size(); i++) {
        TextBlock textBlock = textBlocks.get(textBlocks.keyAt(i));
        String value = textBlock.getValue();
        Point[] p = textBlock.getCornerPoints();
        Log.e(TAG, "something is happening");
    }
}
Run Code Online (Sandbox Code Playgroud)

此外,我使用TouchImageView显示位图.现在我用我获得的坐标调用setZoom方法,如下所示:

touchImageView.setZoom(1F,210F,748F,ImageView.ScaleType.CENTER);

但它缩放到错误的地方,我不知道为什么.有人可以给我一些提示吗?

(https://github.com/MikeOrtiz/TouchImageView/blob/master/src/com/ortiz/touch/TouchImageView.java)

编辑:好的,我发现缩放类型做了我没有得到的东西.我想这里的问题是setZoom.我必须将位图的坐标转换为Touchimageview的坐标. …

android zoom touchimageview

5
推荐指数
1
解决办法
317
查看次数

如何使用Dapper映射DBNull值?

我正在使用Dapper并执行以下查询,该查询已映射到type列表MyObject。默认映射器的问题是int我的表(INOUT)中有一个可为空的字段,其中包含整数值。一个可能的值是NULL,它将被映射为整数0。如何防止这种情况?我必须知道INOUT是NULL还是0。

public List<MyObject> GetSomething()
{
    using (IDbConnection db = GetOpenConnection())
    {
        return db.Query<MyObject>("Select * from tbl_foo").ToList<MyObject>();
    }
}

public class MyObject
{
    public int INOUT { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

c# dapper

3
推荐指数
1
解决办法
268
查看次数

以编程方式缩放后使用鼠标滚轮时 D3.zoom 跳转

当我通过单击鼠标缩放到特定位置然后尝试平移或使用鼠标滚轮时,缩放行为会跳跃。似乎我的缩放级别正在恢复,就像单击鼠标之前一样。

这是我的事件处理程序:

function click(d) {
    var x, y, k;

    if (d && centered !== d) {
       var centroid = path.centroid(d);
       x = centroid[0];
       y = centroid[1];
       k = 4;
       centered = d;
     } else {
       x = width / 2;
       y = height / 2;
       k = 1;
       centered = null;
    }


    svgContainer.transition()
       .attr("transform", "translate(" + width / 2 + "," + height / 2 + ")scale(" + k + ")translate(" + -x + "," + -y + ")");
} …
Run Code Online (Sandbox Code Playgroud)

svg zooming d3.js

2
推荐指数
1
解决办法
1513
查看次数

这两个异步函数之间的区别

您好我没有得到以下两个asnyc函数之间的区别,有人可以解释一下吗?它们都没有返回IRestResponse,所以我无法访问StatusCode字段.我必须在这里投吗?

public async Task<IRestResponse> Post<T>(string Ressource, T ObjTOPost) where T : new()
{
    return await Task.Factory.StartNew(() =>
    {
        var client = new RestClient("test.com");
        var request = new RestRequest(Ressource, Method.POST);

        var response = client.Execute(request);

        return response;
    });
}
Run Code Online (Sandbox Code Playgroud)

还有这个:

public async Task<IRestResponse> Post<T>(string Ressource, T ObjTOPost) where T : new()
{
    var client = new RestClient("test.com");

    var request = new RestRequest(Ressource, Method.POST);

    var response = await client.ExecuteTaskAsync<T>(request);

    return response;
}
Run Code Online (Sandbox Code Playgroud)

c# asynchronous async-await

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

使用pixijs渲染多边形

我正在尝试在移动设备上显示超过 6000 个多边形。目前,我正在使用 d3.js 库在 Android WebView 中使用 SVG 路径来执行此操作。它有效,但我必须处理性能问题,当我拖动地图或缩放时,我的地图变得非常滞后。

我现在的想法是尝试用pixijs做同样的事情。我的数据最初来自 ESRI Shapefiles。我将这些 Shapefile 转换为 GeoJSON,然后转换为 SVG。我的顶点数组看起来像这样,我试图将其传递给 drawPolygon 函数

0:994.9867684400124 1:22.308409862458518 2:1042.2789743912592 3:61.07148769269074

但是当我尝试渲染这些多边形时,没有显示任何内容。这是我的代码:

        var renderer = PIXI.autoDetectRenderer(1800, 1800, { backgroundColor: 0x000000, antialias: true });
        document.body.appendChild(renderer.view);

        var stage = new PIXI.Container();
        var graphics = new PIXI.Graphics();

        var totalShapes = feat.features.length; 

        for (var i = 1; i <= totalShapes -1; i++) {

            var shape = feat.features[i];
            var geometry = shape.geometry.bbox;

            graphics.beginFill(0xe74c3c);
            graphics.drawPolygon([ geometry]);
            graphics.endFill();
            stage.addChild(graphics);
            renderer.render(stage);

         }
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我或者建议我采用不同的方式吗?

svg polygon geojson pixi.js

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

如何缓存样式但仍设置单个文本?

我对以下情况感到迷失。

我在 Android 应用程序中使用 OpenLayers 6。我有大约 4000 个 geoJson 功能要显示。它只是一个包含 4000 个特征的矢量图层。

对于其中的 3000 个,我必须设置一个单独的文本(所有这些文本在属性中都有一个唯一的 ID)

当我为每个功能创建一个样式而不缓存它们时,我的应用程序会崩溃,因为内存使用量增加到超过 2GB。当我创建样式并按功能 ID 缓存它们时,我仍然需要创建 3000 个样式,并且我的应用程序也会崩溃。

现在,当我按颜色缓存样式时,我得到 2 个样式。该应用程序运行良好,但现在我无法设置单独的文本,因为文本位于样式对象中,而我只有其中两个。

如果每个功能都有单独的样式(没有缓存或按 ID 缓存),这将是我的解决方案。

map.once('postrender', function(event) {
    addStyle();
});


function addStyle() {
    var vectorLayer;
    var layersObject = map.getLayers();
    for (var i = 0; i < layersObject.array_.length; i++) {
        vectorLayer = layersObject.array_[i];
        break;
    }

    var arrFeatures = vectorLayer.getSource().getFeatures();
    var i = 0;
    for (i; i <= arrFeatures.length - 1; i++) {
        var feat = arrFeatures[i];
        var myId …
Run Code Online (Sandbox Code Playgroud)

gis openlayers openlayers-6

0
推荐指数
1
解决办法
932
查看次数

c#Linq删除一个Item

我有一个包含对象的列表.该对象的一个​​属性来自类型日期,我想按日期分组并删除该项,如果一个组只持有一个项目.

我的列表已按日期排序:

01.01.2018
01.01.2018
02.01.2018 <- this one should be removed
03.01.2018
03.01.2018
Run Code Online (Sandbox Code Playgroud)

我的linq方法看起来像这样:

var listCleaned = myList.GroupBy(x => x.WHEN.ToShortDateString())
                        .TakeWhile(y => y.Count() > 1)
                        .SelectMany(i => i.ToList())
                        .ToList();
Run Code Online (Sandbox Code Playgroud)

我的这个问题是,2018年2月1日之后的每个项目也将被删除.

c# linq

-1
推荐指数
1
解决办法
100
查看次数