小编Isa*_*aac的帖子

扑。在加载文件之前检查文件是否存在

我想要做的是在 Material Widget 中加载图像以在 ListTile 中使用它,但此资产可能不存在。

class MyImage extends StatelessWidget {
  final imagePath;

  MyIcon(String iconName) {
    try { // check if imagePath exists. Here is the problem
      imagePath = check('assets/$iconName.png/');
    } catch (e, s) { // if not
      imagePath = 'assets/$iconName.png/';
    }
  }

 @override
  Widget build(BuildContext context) {
    return Material(...here I will load the imagePath...);
 }
}
Run Code Online (Sandbox Code Playgroud)

因此,由于我使用的是无状态小部件,因此我必须事先知道图像是否存在,否则我将加载一个空值,对吗?

我对 Futter 很陌生,所以我不知道这是否是一个明显的问题

谢谢!

assets dart flutter

34
推荐指数
3
解决办法
3万
查看次数

扑。文件 containsSync() 始终返回 false

这就是我现在面临的问题。我有一个名为“assets”的文件夹,在该文件夹内有一个名为“no_icon.png”的图像。我已将其添加到 pubspec.yaml 中,如下所示:

flutter:
  assets:
    - assets/teamShields/
    - assets/no_icon.png
Run Code Online (Sandbox Code Playgroud)

当我在 StatelessWidget 中执行此操作时

final imageP = File('assets/no_icon.png');
Run Code Online (Sandbox Code Playgroud)

然后在这个和一个 MaterialApp 里面:

body: Text(imageP.existsSync().toString()),
Run Code Online (Sandbox Code Playgroud)

我总是在屏幕上看到错误。

另外,如果我输入Image.asset('assets/no_icon.png'),而不是文本,我可以看到渲染的图像。

我不知道这是一个错误还是我做错了什么......

assets file dart dart-io flutter

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

未能在线程中专门化函数模板

我正在尝试在 c++ 中实现一个线程,它将用于在我拍照时进行控制,但是这个简单的代码给了我一个奇怪的错误,我无法理解。这是我的代码:

#include <iostream>
#include <fstream>
#include <thread>
    using namespace std;

    void counter(int seconds, bool &flagTakePhoto, bool &flagThreadStart);

int main() {
    bool takePhoto, threadStart;

    int seconds = 1;

    thread t(counter, seconds, takePhoto, threadStart);
    //Some code here
}


void counter(int seconds, bool &flagTakePhoto, bool &flagThreadStart) {
    while (flagThreadStart) {
        this_thread::sleep_for(chrono::seconds(seconds));
        flagTakePhoto = true;
    }
    terminate();
}
Run Code Online (Sandbox Code Playgroud)

这是错误:

1>------ Build started: Project: Proyecto para pruebas OPENCV, Configuration: 
Release x64 ------
1>  Main.cpp
1>Main.cpp(46): warning C4244: 'initializing': conversion from '__int64' to 'int', …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading

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

Opencv 如何在掩码中应用过滤器


我想将索贝尔滤镜应用于图像,但我只想将其应用于我定义的蒙版内。我知道我只能cv2.bitwise_and获取蒙版内的图像,但这也会给我蒙版和内部图像之间的边缘,索贝尔会将其检测为边界。

那么我如何将过滤器(在我的例子中cv2.Sobel(dni,cv2.CV_64F,1,0,ksize=5))应用于仅在蒙版内的图像部分?

谢谢!

python opencv mask sobel

5
推荐指数
0
解决办法
1393
查看次数

高程不适用于颤振材料

我想做一个看起来像这样的应用程序 神社应用与角落上的那片。我可以制作那张幻灯片,但我的应用程序没有那个阴影。

我将我的前层包裹在一个像MDC-104示例中那样具有高度的材料宽幅内。

这是我进行切割的代码

import 'package:flutter/material.dart';

class ShapeLayer extends StatelessWidget {
  final Widget frontLayer;
  final Widget backLayer = Container(
    color: Colors.green,
  );

  ShapeLayer({Key key, this.frontLayer}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Stack(
      children: <Widget>[
        backLayer,
        Material(
          elevation: 60.0,
          shape: BeveledRectangleBorder(
            borderRadius: BorderRadius.only(topLeft: Radius.circular(46.0)),
          ),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.stretch,
            children: <Widget>[
              Expanded(child: frontLayer),
            ],
          ),
        ),
      ],
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

我像这样使用它:

return Scaffold(
  appBar: appBar,
  body: ShapeLayer(frontLayer: Container(//Some stuff here)
Run Code Online (Sandbox Code Playgroud)

它看起来像这样: 我的应用程序

如您所见,它看起来很平坦,根本没有高度。

我怎样才能解决这个问题?

谢谢!

编辑:正如@SnakeyHips 所建议的,这是我的应用程序,海拔高度为 …

scaffold dart material-design flutter flutter-layout

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

扑。在非常大的 ListView 上设置 ListView 初始位置

我想创建一个几乎无限的元素列表,但我想将列表的初始位置设置为某个特定元素。像这样的图片:

列表显示

其中索引 0 是初始位置,并且该列表可能会也可能不会在两个方向上延伸很长。

我可以创建我的元素,例如:

  Widget build_tile(int i){
    return Container(child:Text(i.toString()));
  }
Run Code Online (Sandbox Code Playgroud)

我的清单是这样的

ListView.builder(
                  itemBuilder: (context, i) {
                    return build_tile(i-offset);
                  },
              scrollDirection: Axis.horizontal,
            ),
Run Code Online (Sandbox Code Playgroud)

对于图中的示例,偏移量为 2,但如何设置列表的开始位置?

太长了;如何制作像1中那样的非常长的列表 ListView以从某个元素开始?

谢谢!

listview dart flutter

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

无法使用assign_add更新tensorflow变量

我正在尝试使用 SSU 隐藏单元制作 RBM,我必须更新标准偏差。

我这样定义我的变量:

    def _build_model(self):
        with tf.device('/gpu:0'):
            with self.graph.as_default():
...
                with tf.variable_scope("visible_layer"):
                    self.v_clamp = tf.placeholder(name = "v_in", dtype = tf.float32, shape=[self.batch_size, self.n_visibles])
                    self.bv = tf.get_variable(name = "b_v", dtype = tf.float32, shape=[self.n_visibles], initializer=tf.random_uniform_initializer(maxval=0.01,minval=-0.01))

                self.stddev = tf.get_variable(name = "stddev", dtype = tf.float32, shape = [1], initializer = tf.constant_initializer(float(self.stddev_)))

...

                with tf.variable_scope("update_weights"):
                    self.optimizer = self.update_weights()

....
Run Code Online (Sandbox Code Playgroud)

其中 stddev_ 具有初始值。

我的更新功能是这样的:

    def update_weights(self):
        with self.graph.as_default():
            with tf.device('/gpu:0'):
            ...
            with tf.variable_scope("calc_deltas"):
            ...
                ##UPDATE STDDEV
                delta_stddev = tf.multiply((2)/(self.stddev**3),
                                           tf.subtract(tf.reduce_sum(tf.pow(tf.subtract(self.v_clamp,self.bv),2)),
                                                       tf.reduce_sum(tf.pow(tf.subtract(v_free,self.bv),2))))
            #self.stddev.assing_add(delta_stddev)
            self.stddev.assign_add(tf.constant(0.1,shape=[1]))

            return self.stddev …
Run Code Online (Sandbox Code Playgroud)

tensorflow

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

如何在flutter中访问firestore的某些字段?

像这样说我的文档: -user_id: -name -address - 大量繁重的数据。

我知道我可以获取整个文档并只显示我想要的字段,但我只需要从我的文档中检索姓名和地址,这样我的用户就可以节省带宽。

我怎样才能做到这一点?

PD:这就是我检索整个文档的方式。

return StreamBuilder(
  stream: Firestore.instance
      .collection('users')
      .document(widget.userId.toString())
      .snapshots(),
  builder: (context, snapshot) {
    if (!snapshot.hasData) {
      return Center(
        child: CircularProgressIndicator(
          valueColor: AlwaysStoppedAnimation<Color>(Colors.deepOrange),
        ),
      );
    } else {
      return _buildUserTile(context, snapshot.data);
    }
  },
);
Run Code Online (Sandbox Code Playgroud)

dart firebase flutter google-cloud-firestore

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