我正在进行一个生成艺术项目,我希望允许用户从算法中保存生成的图像.一般的想法是:
但是,我坚持第二步.在谷歌的一些帮助下,我找到了这篇博文,这似乎正是我想要的:
这导致了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) 我正在寻找如何将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!).
对我在这里做错了什么的想法?
我正在使用标签为我的搜索框创建建议列表,但我无法从数据列表中选择多个值.目前,我的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)
它会为一个项目提供建议,但之后建议不会建议我的第二个选项自动完成.我认为"多重"标签是我所需要的(以及网上建议的内容),但它似乎没有达到预期的效果.
有什么建议?
我正在努力实现各种细分算法(例如catmull-clark); 要有效地执行此操作,需要一种很好的方法来存储有关细分多边形网格的信息.我实现了flipcode概述的半边数据结构,但现在我不确定如何从顶点填充数据结构!
我最初的尝试是
但是,这会创建一个没有任何关于相邻面信息的面(一半边)列表!这也感觉有点不对,因为看起来好像是真正的第一类物体,边缘提供辅助信息; 我真的觉得我应该从顶点创建边缘,然后从那里整理出面.但同样,我不太确定如何以这种方式去做 - 我想不出一种方法来创建一个半边列表而不先创建面.
有关将顶点(和面)数据转换为半边的最佳方法的建议吗?
我一直在阅读各种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客户端和服务器不断发送/接收数据.我发现的所有代码示例都显示了如何将单个消息发送到套接字,而不是如何连续设置发送/接收数据.
现在我的代码是:
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) 我试图弄清楚如何配置我的清单文件以使用 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 对象并专门列出它?
我一直在撞墙,试图找出如何用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) 我有一个线段列表(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将新元素用作最近清空的向量。
有更好的方法吗?
我正在尝试使用 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/,但转义英镑符号似乎并不能解决问题。我很确定英镑导致了所有问题,但我无法控制目录名称。关于如何解决这个问题的任何想法?
谢谢!
python ×4
c++ ×2
ajax ×1
algorithm ×1
arduino ×1
autoencoder ×1
bash ×1
command-line ×1
html5 ×1
html5-canvas ×1
javascript ×1
numpy ×1
oauth ×1
php ×1
polygons ×1
rsync ×1
scipy ×1
sockets ×1
tensorflow ×1
vcpkg ×1
vector ×1
windows ×1