小编aba*_*haw的帖子

如何在Rails 3中同时销毁多个对象

我有一个Rails应用程序,试图一次删除多个对象.

我试过发送一组由','分隔的id到rails destroy方法,但它只销毁单个对象.是否可以删除rails 3中的多个对象.

ruby-on-rails ruby-on-rails-3

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

将自定义域用于Google Cloud功能

在使用HTTP触发器时,我无法在任何地方看到为我的Google云功能设置自定义域的任何选项.似乎是一个相当重大的遗漏.有没有办法使用自定义域而不是他们的location-project.cloudfunctions.net域或某些解决方法达到相同的效果?

我读了一篇文章,建议在函数前面使用CDN,并将功能URL指定为拉区.这可行,但会带来不必要的成本 - 在我的场景中,没有任何内容能够被缓存,因此使用CDN远非理想.

google-cloud-platform google-cloud-functions

35
推荐指数
4
解决办法
9957
查看次数

在图像中找到相似颜色的区域

我一直在研究这个问题已经有一段时间没什么可喜的结果了.我试图将图像分割成相似颜色的连接区域.(基本上将所有像素的列表分成多个组(每个组包含属于它的像素的坐标并共享相似的颜色).

例如:http: //unsplash.com/photos/SoC1ex6sI4w/

在这张图片中,顶部的乌云可能会落入一组.山上的一些灰色岩石在另一个,另一些是橙色的草.雪会是另一个 - 背包的红色 - 等等.

我正在尝试设计一种既准确又高效的算法(它需要在中端笔记本电脑级硬件上运行几毫秒)


以下是我的尝试:

使用基于连通分量的算法从左上角扫描每个像素,从左到右扫描每行像素(并将当前像素与顶部像素和左像素进行比较).使用CIEDE2000色差公式,如果顶部或左侧的像素在一定范围内,那么它将被视为"相似"并且是该组的一部分.

这种方法有效 - 但问题在于它依赖于具有锐边的颜色区域 - 如果任何颜色组通过软渐变连接,它将沿着该渐变向下移动并继续"连接"像素,因为各个像素之间的差异是比较小到足以被认为是"相似的".

为了解决这个问题,我选择将每个访问过的像素的颜色设置为大多数"相似"相邻像素(顶部或左侧)的颜色.如果没有相似的像素,则保留其原始颜色.这在某种程度上解决了更加模糊的边界或柔化边缘的问题,因为随着算法的进展,新组的第一种颜色将被"携带",并且最终颜色与当前比较颜色之间的差异将超过"相似性"威胁和不再是该群体的一部分.

希望这是有道理的.问题是这些选项都没有真正起作用.在上面的图像上返回的不是干净的组,而是嘈杂的碎片组,这不是我想要的.

我不是专门寻找代码 - 而是关于如何构建算法以成功解决这个问题的更多想法.有没有人有这个想法?

谢谢!

javascript image node.js

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

如何在Typescript中连接字符串和数字

我正在使用方法来获取数据

function date() {
    let str = '';

    const currentTime = new Date();
    const year = currentTime.getFullYear();
    const month = currentTime.getMonth();
    const day = currentTime.getDate();

    const hours = currentTime.getHours();
    let minutes = currentTime.getMinutes();
    let seconds = currentTime.getSeconds();
    if (month < 10) {
        //month = '0' + month;
    }
    if (minutes < 10) {
        //minutes = '0' + minutes;
    }
    if (seconds < 10) {
        //seconds = '0' + seconds;
    }
    str += year + '-' + month + '-' + …
Run Code Online (Sandbox Code Playgroud)

javascript concat typescript

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

如何确定python中视频的开始时间和结束时间(自纪元以来的秒数)?

我有一个项目,将需要能够知道时间的视频文件(如.mp4,.mov,.mxf等)开始(例如,当按下记录),并在视频文件纪元以来的秒数结束.

到目前为止,我一直在做的是找到File Modified时间并将其用作端点,然后减去持续时间以找到开头.这在某些情况下效果很好但是看起来有些相机并没有以线性可预测的方式准确地写/修改文件,所以有时候视频文件的开始/结束时间重叠,显然你不能在同时.

是否有一些其他方法或元数据我可以使用ffprobepython中的say (或替代)来准确地确定视频何时开始以及何时结束?

python video timestamp metadata python-3.x

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

将缓冲区图像数据管道传输到Node.js中的Uint8ClampedArray格式

我正在尝试将图像数据传输到我在浏览器中成功使用的函数中.

浏览器中的代码如下:

var myImageData = context.getImageData(0, 0, width, height);
var gray = tracking.Image.grayscale(myImageData.data, width, height);
Run Code Online (Sandbox Code Playgroud)

这工作得很好,从我的理解似乎是ImageData从图像生成一个对象canvas.

所述.data的的属性ImageData对象似乎是一个Uint8ClampedArray读取[r1, g1, b1, a1, r2, g2, b2, a2.....]的图案看,每第四个数字是255其有意义的,因为没有一个图像是透明的.

我试图以类似的方式在Node.js中使用它,除了我从https://github.com/lovell/sharp生成的缓冲区中获取我的图像数据:

sharp(body)
    .resize(newWidth, newHeight)
    .raw()
    .toBuffer(function (err, buffer, info) {
        var gray = tracking.Image.grayscale(buffer, newWidth, newHeight);
    });
Run Code Online (Sandbox Code Playgroud)

问题是,这显然不起作用.

我无法将缓冲区直接传递给函数.我已经尝试了很多东西,实际上向我展示了一个数组的唯一过程是buffer.toJSON().data.看那个,数字都<= 255,但是我看不到每个第四个数字都是255模式,这表明出现了问题.


我的问题是:

如何从Node.js中的图像缓冲区获取Uint8ClampedArray正确的[r1, g1, b1, a1, r2, g2, b2, a2.....]格式,然后我可以传递给我的函数?


Sharp提供了其他缓冲区编码方法.png(), …

javascript image image-processing node.js

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

失败或退出时看不见的reCAPTCHA回调

Invisible reCAPTCHA可让您在成功验证后轻松设置回调:

<button class="g-recaptcha" data-sitekey="your_site_key" data-callback='successfulVerification()'>Submit</button>
Run Code Online (Sandbox Code Playgroud)

但是如果进一步验证的模式被关闭(或者reCAPTCHA无法验证你是否是人类 - 实际上不确定是否会发生这种情况,它似乎没有任何触发回调的选项,也许它只是一直显示你永远新的挑战?)

这很重要的原因是我们有一个加载微调器或某种视觉提示来向用户显示我们正在处理提交.如果reCAPTCHA无法自动确定用户确实是人类,则会显示模态 - 现在如果用户成功完成,则表示没问题 - 但如果他/她退出,则加载微调器仍然可见,因为它没有不知道reCAPTCHA失败/用户退出了它.

一种解决方法是仅在reCAPTCHA成功并且请求开始显示加载微调器- 但是这对用户来说是一种糟糕的体验,因为在单击按钮和"出现"要提交的表单之间会有延迟 - 留下用户可能想知道表单是否实际提交.

关于如何解决这个问题的任何想法?谢谢!

javascript recaptcha invisible-recaptcha

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

替代使用postMessage()来控制状态的连续消息弹出窗口

我有一个站点,可以显示在两种状态之一(让我们说正常调试).在大多数情况下,此站点上的页面将以正常状态显示- 但是在某些情况下,此页面将作为弹出窗口打开,并且需要在调试模式下显示.

我目前正在实现以下目标:

正在加载的页面上的JS侦听带有以下内容的消息:

window.addEventListener("message", enterDebugMode, false);
Run Code Online (Sandbox Code Playgroud)

如果发送了适当的消息,则进入调试模式.


问题:如果用户导航到该弹出窗口中的新页面(在同一站点上),新页面将不知道它应该在调试模式下显示为弹出加载的前一个原始页面收到的消息,但后续页面没有收到该消息.

hacky解决方案:继续重复发送消息(即每1秒)以确保任何新页面接收消息并进入调试模式.如果页面已处于调试模式,则忽略任何后续消息.


不过,我真的不喜欢不断地向页面发送消息,而且如果存在的话,我宁愿更清洁,更有效的解决方案.一个这样的想法是在弹出窗口加载新页面时发送新消息,但遗憾的是我无法注册任何事件处理程序来监听页面加载事件,因为这是一个跨源操作.

我也可以将页面加载消息父母看看它是否应该处于调试模式 - 但我不希望加载的页面启动任何通信 - 第一条消息应该来自父级.

javascript postmessage popup

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

如何设置div以在文本更改时进行转换

当内部文本发生变化时,我希望无缝扩展我的div(以非刺激的方式):

CSS transition: all 2s ease;非常适合颜色变化,手动设置宽度等(您可以在jsfiddle中尝试- 单击按钮切换宽度).但是当div的内部文本被更改时,div只会跳转到新的宽度而没有任何转换.

当内部文本发生变化时,如何才能使过渡工作?

谢谢!

html css css3

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

OpenCV从网址加载视频

我有一个视频文件(即https://www.example.com/myvideo.mp4),需要使用OpenCV加载它.

使用图像执行等效操作非常简单:

imgReq = requests.get("https://www.example.com/myimage.jpg")
imageBytes = np.asarray(bytearray(data), dtype=np.uint8)
loadedImage = cv2.imdecode(image, cv2.IMREAD_COLOR)
Run Code Online (Sandbox Code Playgroud)

我想做类似以下的事情(其中loadedVideo类似于OpenCV返回的内容cv2.VideoCapture):

videoReq = requests.get("https://www.example.com/myimage.mp4")
videoBytes = np.asarray(bytearray(data), dtype=np.uint8)
loadedVideo = cv2.videodecode(image, cv2.IMREAD_COLOR)
Run Code Online (Sandbox Code Playgroud)

cv2.videodecode不存在.有任何想法吗?


编辑:看到这可能只是OpenCV的死胡同,我开放的解决方案,在加载到OpenCV之前结合其他成像库...如果存在这样的解决方案.

python video opencv python-3.x

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