小编nat*_*yer的帖子

如何将HTML5 Canvas保存为服务器上的图像?

我正在进行一个生成艺术项目,我希望允许用户从算法中保存生成的图像.一般的想法是:

  • 使用生成算法在HTML5 Canvas上创建图像
  • 图像完成后,允许用户将画布作为图像文件保存到服务器
  • 允许用户下载图像或将其添加到使用算法生成的图片库中.

但是,我坚持第二步.在谷歌的一些帮助下,我找到了这篇博文,这似乎正是我想要的:

这导致了JavaScript代码:

function saveImage() {
  var canvasData = canvas.toDataURL("image/png");
  var ajax = new XMLHttpRequest();

  ajax.open("POST", "testSave.php", false);
  ajax.onreadystatechange = function() {
    console.log(ajax.responseText);
  }
  ajax.setRequestHeader("Content-Type", "application/upload");
  ajax.send("imgData=" + canvasData);
}
Run Code Online (Sandbox Code Playgroud)

和相应的PHP(testSave.php):

<?php
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])) {
  $imageData = $GLOBALS['HTTP_RAW_POST_DATA'];
  $filteredData = substr($imageData, strpos($imageData, ",") + 1);
  $unencodedData = base64_decode($filteredData);
  $fp = fopen('/path/to/file.png', 'wb');

  fwrite($fp, $unencodedData);
  fclose($fp);
}
?>
Run Code Online (Sandbox Code Playgroud)

但这似乎根本没有做任何事情.

更多谷歌搜索出现了这篇基于上一个教程的博客文章.差别不大,但也许值得一试:

$data = $_POST['imgData'];
$file = "/path/to/file.png";
$uri = substr($data,strpos($data, ",") + 1);

file_put_contents($file, …
Run Code Online (Sandbox Code Playgroud)

javascript php ajax html5-canvas

239
推荐指数
6
解决办法
31万
查看次数

Scipy/Numpy FFT频率分析

我正在寻找如何将fft中的频率轴(通过scipy.fftpack.fftfreq获取)转换为赫兹频率,而不是箱子或分数箱.

我尝试在下面编写代码来测试FFT:

t = scipy.linspace(0,120,4000)
acc = lambda t: 10*scipy.sin(2*pi*2.0*t) + 5*scipy.sin(2*pi*8.0*t) + 2*scipy.random.random(len(t))

signal = acc(t)

FFT = abs(scipy.fft(signal))
FFT = scipy.fftpack.fftshift(FFT)
freqs = scipy.fftpack.fftfreq(signal.size)

pylab.plot(freqs,FFT,'x')
pylab.show()
Run Code Online (Sandbox Code Playgroud)

采样率应为4000个样本/ 120秒= 33.34个样本/秒.

该信号具有2.0 Hz信号,8.0 Hz信号和一些随机噪声.

我采用FFT,抓取频率并绘制它.这些数字非常荒谬.如果我将频率乘以33.34(采样频率),那么我会得到大约8 Hz和15 Hz的峰值,这似乎是错误的(同样,频率应该是4倍,而不是2!).

对我在这里做错了什么的想法?

python numpy scipy

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

使用datalist进行多项选择

我正在使用标签为我的搜索框创建建议列表,但我无法从数据列表中选择多个值.目前,我的HTML是:

<html>

  <form action="search_tags.php" method="GET"/>

  Search: <input type="text" multiple="multiple" name="search" list="tags" autocomplete="off" />

  <datalist id="tags">
    <option value="black">
    <option value="gold">
    <option value="grey">
    <option value="pink">
    <option value="turquoise">
    <option value="red">
    <option value="white">
  </datalist>

</html>
Run Code Online (Sandbox Code Playgroud)

它会为一个项目提供建议,但之后建议不会建议我的第二个选项自动完成.我认为"多重"标签是我所需要的(以及网上建议的内容),但它似乎没有达到预期的效果.

有什么建议?

html5 html-datalist

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

从顶点初始化半边数据结构

我正在努力实现各种细分算法(例如catmull-clark); 要有效地执行此操作,需要一种很好的方法来存储有关细分多边形网格的信息.我实现了flipcode概述的半边数据结构,但现在我不确定如何从顶点填充数据结构!

我最初的尝试是

  • 创建顶点
  • 将顶点分组为面
  • 对面内的顶点进行排序(使用它们相对于质心的角度)
  • 对于每个面,抓取第一个顶点,然后遍历排序的顶点列表以创建半边列表.

但是,这会创建一个没有任何关于相邻面信息的面(一半边)列表!这也感觉有点不对,因为看起来好像是真正的第一类物体,边缘提供辅助信息; 我真的觉得我应该从顶点创建边缘,然后从那里整理出面.但同样,我不太确定如何以这种方式去做 - 我想不出一种方法来创建一个半边列表而不先创建面.

有关将顶点(和面)数据转换为半边的最佳方法的建议吗?

algorithm polygons computational-geometry data-structures

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

张量流中的稀疏自编码器代价函数

我一直在阅读各种TensorFlow教程,试图熟悉它的工作原理; 我对使用自动编码器感兴趣.

我开始在Tensorflow的模型库中使用模型autoencoder:

https://github.com/tensorflow/models/tree/master/autoencoder

我得到它的工作,并在可视化权重,期望看到这样的事情:

在此输入图像描述

但是,我的自动编码器给了我看起来很垃圾的权重(尽管准确地重新创建了输入图像).

在此输入图像描述

进一步阅读表明我缺少的是我的自动编码器不稀疏,所以我需要对权重实施稀疏成本.

我试图在原始代码中添加稀疏成本(基于此示例3),但它似乎没有将权重更改为看起来像模型.

如何正确地更改成本以获得看起来像自动编码的MNIST数据集中常见的功能?我修改过的模型在这里:

import numpy as np
import random
import math
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
import matplotlib.pyplot as plt

def xavier_init(fan_in, fan_out, constant = 1):
    low = -constant * np.sqrt(6.0 / (fan_in + fan_out))
    high = constant * np.sqrt(6.0 / (fan_in + fan_out))
    return tf.random_uniform((fan_in, fan_out), minval = low, maxval = high, dtype = tf.float32)

class AdditiveGaussianNoiseAutoencoder(object):
    def __init__(self, n_input, n_hidden, transfer_function = tf.nn.sigmoid, optimizer = tf.train.AdamOptimizer(),
                 scale …
Run Code Online (Sandbox Code Playgroud)

python autoencoder deep-learning tensorflow

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

重复/连续python服务器和客户端

我想建立一个系统,我有一个python客户端和服务器不断发送/接收数据.我发现的所有代码示例都显示了如何将单个消息发送到套接字,而不是如何连续设置发送/接收数据.

现在我的代码是:

client.py

import socket
import time

while True:
    try:
        client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        client_socket.connect(("192.168.0.250", 10220))
        data = "GET\nSONAR\n\n"
        print 'send to server: ' + data
        client_socket.send(data)
        client_socket.close()
    except Exception as msg:
        print msg
Run Code Online (Sandbox Code Playgroud)

我希望代码能够每分钟多次发送命令,但是现在它似乎并不总是发送消息,我不知道为什么.为什么控制流不连续?

server.py

import socket

host = '192.168.0.100'
port = 8220
address = (host, port)

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((address))
server_socket.listen(5)

while True:
    try:
        print "Listening for client . . ."
        conn, address = server_socket.accept()
        print "Connected to client at ", address
        #pick a large output buffer …
Run Code Online (Sandbox Code Playgroud)

python sockets arduino

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

如何使用 vpckg 清单文件安装静态库版本?

我试图弄清楚如何配置我的清单文件以使用 vcpkg 的新清单功能编译我的库的静态版本。我当前的清单文件是:

{
  "name": "myProject",
  "version-string": "v0.1",
  ],
  "dependencies": [
    {
      "name": "curl",
      "features" : [
        "openssl"
      ],
      "platform" : "(windows & x64 & static)"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

但这会导致没有安装任何内容。该选项"platform" : "windows"x86-windows三元组安装,但我无法找出 的正确参数x64-windows-static

我也很好奇——有没有办法为所有库声明一个三元组,而不是让每个库成为一个 JSON 对象并专门列出它?

c++ windows visual-studio vcpkg

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

如何使用python-oauth2发送oauth请求

我一直在撞墙,试图找出如何用oauth发送经过验证的请求.

我能够访问令牌,但不完全确定如何向他们提交请求.我在twitter的开发者信息中找到了这个:

https://dev.twitter.com/docs/auth/oauth/single-user-with-examples#python ,其中包含一些用于发送授权请求的示例代码:

def oauth_req(url, key, secret, http_method="GET", post_body=None,http_headers=None):
    consumer = oauth.Consumer(key=consumerKey, secret=consumerSecret)
    token = oauth.Token(key=tokenKey, secret=tokenSecret)
    client = oauth.Client(consumer, token)
    resp, content = client.request(
        url,
        method=http_method,
        body=post_body,
        headers=http_headers,
        #force_auth_header=True                                                                                                                                                 
        )
    return resp,content

oauth_req('http://openapi.etsy.com/v2/shops/:user/transactions',tokenKey,tokenSecret)
Run Code Online (Sandbox Code Playgroud)

但是,当我包含所有信息时,我收到以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/tmp/python-22060Umg.py", line 153, in <module>
    transactions = oauth_req('http://openapi.etsy.com/v2/shops/:user/transactions',tokenKey,tokenSecret)
  File "/tmp/python-22060Umg.py", line 76, in oauth_req
    force_auth_header=True
TypeError: request() got an unexpected keyword argument 'force_auth_header'
Run Code Online (Sandbox Code Playgroud)

其中:user是实际用户(我已将其从帖子中删除),tokenKey/tokenSecret是访问令牌.

我想也许这就像评论违规行一样简单,但没有这样的运气:

Traceback (most recent call last):
  File "<stdin>", …
Run Code Online (Sandbox Code Playgroud)

python oauth

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

在向列表添加项目时如何遍历列表

我有一个线段列表(std::vector<std::pair<int, int> >我想对其进行迭代和细分。该算法将以psuedocode表示:

for segment in vectorOfSegments:
    firstPoint = segment.first;
    secondPoint = segment.second;
    newMidPoint = (firstPoint + secondPoint) / 2.0
    vectorOfSegments.remove(segment);
    vectorOfSegments.push_back(std::make_pair(firstPoint, newMidPoint));
    vectorOfSegments.push_back(std::make_pair(newMidPoint, secondPoint));
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是如何push_back在不永久遍历此列表的情况下如何添加新元素(并删除旧元素)。

似乎最好的方法可能是首先创建此向量的副本,然后将该副本用作参考,clear()原始向量,然后push_back将新元素用作最近清空的向量。

有更好的方法吗?

c++ vector

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

rsync:如何通过外部排除文件排除具有特殊字符的目录

我正在尝试使用 cron 自动化的 rsync 脚本备份服务器。现在我正在使用命令:

rsync -avz --progress --exclude-from "/Users/user/Scripts/exclude.txt" -e ssh user@server:$REMOTE_PATH $LOCAL_PATH > /tmp/rsync.log

在 bash 脚本中定义了 $REMOTE_PATH 和 $LOCAL_PATH。

我有一个名为 #recycle 的目录,我想跳过它,但不确定如何用文件排除它。如果我使用选项 --exclude '#recycle/',那么它会跳过目录就好了。但是,如果我使用 --exclude-from 标记包含上面的选项,则文件仅包含以下行:

#recycle/
Run Code Online (Sandbox Code Playgroud)

那么它不起作用。我也试过\#recycle/,但转义英镑符号似乎并不能解决问题。我很确定英镑导致了所有问题,但我无法控制目录名称。关于如何解决这个问题的任何想法?

谢谢!

bash rsync command-line

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