小编use*_*241的帖子

在给定目标大小的情况下,如何在python中调整图像大小,同时保持纵横比?

首先,我觉得这是一个愚蠢的问题,抱歉.目前,我发现计算最佳比例因子(目标像素数的最佳宽度和高度,同时保持纵横比)的最准确方法是迭代并选择最佳比例,但必须有更好的方法.

一个例子:

import cv2, numpy as np
img = cv2.imread("arnold.jpg")

img.shape[1] # e.g. width  = 700
img.shape[0] # e.g. height = 979

# e.g. Total  pixels : 685,300

TARGET_PIXELS = 100000
MAX_FACTOR    = 0.9
STEP_FACTOR   = 0.001
iter_factor   = STEP_FACTOR
results       = dict()

while iter_factor < MAX_RATIO:
     img2 = cv2.resize(img, (0,0), fx=iter_factor, fy=iter_factor)
     results[img2.shape[0]*img2.shape[1]] = iter_factor
     iter_factor += step_factor

best_pixels = min(results, key=lambda x:abs(x-TARGET_PIXELS))
best_ratio  = results[best_pixels]

print best_pixels # e.g. 99750
print best_ratio  # e.g. 0.208
Run Code Online (Sandbox Code Playgroud)

我知道有可能是一些错误在上面,即代码躺在身边有在结果字典中没有检查现有的密钥,但我更关心的是一种不同的方法,我想不出正在调查拉格朗日优化,但似乎相当复杂也是一个简单的问题.有任何想法吗?

**编辑后编辑**

如果有人对答案感兴趣,将提供代码 …

python math opencv

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

地图内的矢量清晰安全吗?

只是一个简单的问题,如果你说:

using namespace std;

map< int, vector< string > > map1;
Run Code Online (Sandbox Code Playgroud)

或者甚至可能:

map< int, map< int, vector< string > > > map2;
Run Code Online (Sandbox Code Playgroud)

只是为了让你得到正确的想法:

map< int, map< int, map< int, vector< string > > > > map3;
Run Code Online (Sandbox Code Playgroud)

如果我这样做:

map1.clear();
map2.clear();
map3.clear();
Run Code Online (Sandbox Code Playgroud)

它会清空地图及其嵌套地图、向量、列表等中的所有内容是否安全?

注意:我知道如果您使用指针,则需要手动遍历并删除,或者如果映射超出范围,也应该没问题,我只对在范围内和堆栈上的这种情况特别感兴趣。

c++ dictionary stl vector

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

Caffe编译好了cudnn然而runtest失败并出现错误:CUDNN_STATUS_ARCH_MISMATCH

当使用caffe运行make runtest时,我得到以下输出,它都可以很好地编译Cudnn没有提供错误,我还为运行Cuda的NVidia Tesla GPU提供了build_release/tools/caffe device_query -gpu <0,1>的输出驱动程序和运行时版本7.0.有人可以帮忙吗?

[----------] 1 test from SolverTest/0, where TypeParam = caffe::CPUDevice<float>
[ RUN      ] SolverTest/0.TestInitTrainTestNets
F0907 18:53:28.279698   309 cudnn_softmax_layer.cpp:19] Check failed: status == CUDNN_STATUS_SUCCESS (6 vs. 0)  CUDNN_STATUS_ARCH_MISMATCH
*** Check failure stack trace: ***
    @     0x2b8a426cfdaa  (unknown)
    @     0x2b8a426cfce4  (unknown)
    @     0x2b8a426cf6e6  (unknown)
    @     0x2b8a426d2687  (unknown)
    @     0x2b8a4404b3c5  caffe::CuDNNSoftmaxLayer<>::LayerSetUp()
    @     0x2b8a440bf8a7  caffe::SoftmaxWithLossLayer<>::LayerSetUp()
    @     0x2b8a440eb9dd  caffe::Net<>::Init()
    @     0x2b8a440eca25  caffe::Net<>::Net()
    @     0x2b8a4410335a  caffe::Solver<>::InitTrainNet()
    @     0x2b8a44104354  caffe::Solver<>::Init()
    @     0x2b8a44104659  caffe::Solver<>::Solver()
    @           0x787e9c  caffe::SolverTest<>::InitSolverFromProtoString()
    @           0x785170  caffe::SolverTest_TestInitTrainTestNets_Test<>::TestBody()
    @           0x7e9943 …
Run Code Online (Sandbox Code Playgroud)

automated-tests cuda compilation caffe

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

Pugixml:找不到文档元素

我在pugixml中加载文档时遇到了一些问题(请参阅http://pastebin.com/FE3nDX9h链接).
我收到的错误代码为16:No document element found表示XML文件无效或为空,我认为不是.
我正在使用默认的解析方法.有什么我想念的吗?

编辑:根据要求提供一些源代码http://pastebin.com/USUjLC4q您将需要编辑路径.

c++ xml pugixml

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

如何使用 pugixml 替换节点 pcdata 或文本

我正在寻找一种优雅的解决方案来使用 pugixml(1.6 版)替换节点 pcdata。例如,遍历节点集并将子值更新为某物。

pugi::xpath_node_set nodes = document.select_nodes("//a");

for (auto it = nodes.begin(); it != nodes.end(); it++)
{
    std::cout << "before : " << it->node().child_value() << std::endl;

    // SOME REPLACE GOES HERE

    std::cout << "after  : " << it->node().child_value() << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

我已经使用了:

it->node().append_child(pugi::node_pcdata).set_value("foo");
Run Code Online (Sandbox Code Playgroud)

但顾名思义,它只是附加数据,但我找不到以下方面的任何函数:

it->node().remove_child(pugi::node_pcdata);
Run Code Online (Sandbox Code Playgroud)

另一个注意事项是节点上的属性很重要,应该保持不变。

谢谢你的帮助。

c++ xml pugixml

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

在python numpy.savez中使用变量的值而不是关键字

numpy.savez

在最后一个示例中,将 savez 与 **kwds 一起使用,数组与关键字名称一起保存。

outfile = TemporaryFile()
np.savez(outfile, x=x, y=y)
outfile.seek(0)
npzfile = np.load(outfile)
npzfile.files
['y', 'x']
npzfile['x']
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
Run Code Online (Sandbox Code Playgroud)

我将如何使用变量的实际值,例如:

x_name = 'foo'
y_name = 'bar'

np.savez(outfile, x_name=x, y_name=y)
Run Code Online (Sandbox Code Playgroud)

然后

npzfile.files
['foo', 'bar']
Run Code Online (Sandbox Code Playgroud)

python arrays numpy keyword

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

标签 统计

c++ ×3

pugixml ×2

python ×2

xml ×2

arrays ×1

automated-tests ×1

caffe ×1

compilation ×1

cuda ×1

dictionary ×1

keyword ×1

math ×1

numpy ×1

opencv ×1

stl ×1

vector ×1