小编dum*_*dad的帖子

如何在iOS上的Swift中发布CGDataProvider?

我在Swift中有以下代码:

 func cropToAlpha(image:CGImage) -> CGImage? {
    let pixelDataProvider:CGDataProvider? = CGImageGetDataProvider(image)
    if pixelDataProvider != nil {
        let pixelData:CFData? = CGDataProviderCopyData(pixelDataProvider!)
Run Code Online (Sandbox Code Playgroud)

对CGImageGetDataProvider文档对CGDataProviderCopyData文档都表示,

您负责释放此对象

Swift编程指南讨论了取消初始化,但这与发布对象不同.

一些Objective-C答案(例如我如何在iOS中发布CGImageRef)建议调用CFRelease但是如果我尝试类似的话

CFRelease(pixelDataProvider)
Run Code Online (Sandbox Code Playgroud)

然后我得到编译器错误

'CFRelease'不可用:Core Foundation对象自动进行内存管理

如何通过在Swift中释放生成的对象来遵守CGImageGetDataProvider和CGDataProviderCopyData文档中的请求?

(NB搜索网页上的'Swift release'很棘手,因为搜索结果充斥着关于Swift版本的页面)

swift

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

从ASP .Net Core 1.0.0-rc2-final交换到1.0.0会导致发布的站点失败

我刚刚将我的ASP项目从ASP .Net Core 1.0.0-rc2-final升级到1.0.0.Nuget Package Manager没有处理两个问题.

首先

"Microsoft.NETCore.App": {
  "version": "1.0.0-rc2-3002702",
  "type": "platform"
},
Run Code Online (Sandbox Code Playgroud)

更新到了

"Microsoft.NETCore.App": "1.0.0",
Run Code Online (Sandbox Code Playgroud)

编译失败,所以我把它改成了

"Microsoft.NETCore.App": {
  "version": "1.0.0",
  "type": "platform"
},
Run Code Online (Sandbox Code Playgroud)

其次我需要改变

services.AddMvc();
Run Code Online (Sandbox Code Playgroud)

services
    .AddMvc()
    .AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());
Run Code Online (Sandbox Code Playgroud)

在我的Startup.cs档案中.唯一的其他变化是Nuget对我的project.json文件所做的更改.

该项目在本地运行时没有问题,并成功从VS2015发布到Azure.但是,当我在Azure上打开浏览器访问我的网站时,我收到错误消息

指定的CGI应用程序遇到错误,服务器终止了该进程.

为什么?如何诊断并修复此错误?

(NB继@我下面帕维尔的建议web.config,project.json以及Startup.cs在提供这个要点.)

asp.net-core-1.0

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

大型RAM机器上的pandas内存错误,但较小的RAM机器上没有:相同的代码,相同的数据

我在两台机器上运行以下命令:

import os, sqlite3
import pandas as pd
from feat_transform import filter_anevexp
db_path = r'C:\Users\timregan\Desktop\anondb_280718.sqlite3'
db = sqlite3.connect(db_path)
anevexp_df = filter_anevexp(db, 0)
Run Code Online (Sandbox Code Playgroud)

在我的笔记本电脑上(带有8GB内存),运行没有问题(虽然呼叫filter_anevexp需要几分钟).在我的桌面上(有128GB的RAM)它在pandas中失败并出现内存错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\timregan\source\MentalHealth\code\preprocessing\feat_transform.py", line 171, in filter_anevexp
    anevexp_df = anevexp_df[anevexp_df["user_id"].isin(df)].copy()
  File "C:\Users\timregan\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\frame.py", line 2682, in __getitem__
    return self._getitem_array(key)
  File "C:\Users\timregan\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\frame.py", line 2724, in _getitem_array
    return self._take(indexer, axis=0)
  File "C:\Users\timregan\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\generic.py", line 2789, in _take
    verify=True)
  File "C:\Users\timregan\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\internals.py", line 4539, in take
    axis=axis, allow_dups=True)
  File "C:\Users\timregan\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\internals.py", line …
Run Code Online (Sandbox Code Playgroud)

pandas

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

为什么WebRequest只能工作两次?

我有一个非常简单的HTTP get应用程序,这里有一个更简单的编辑版本

using System;
using System.Net;
using System.Threading;

namespace UploadRichardsStatusConsoleApplication
{
    class Program
    {
        static void Main()
        {
            const string requestString = "http://www.google.com/";
            while (true)
            {
                var request = WebRequest.Create(requestString);
                Console.WriteLine("request sent = " + requestString);
                try
                {
                    var response = request.GetResponse();
                    Console.WriteLine("response.ContentLength = " + response.ContentLength);
                }
                catch (WebException)
                {
                    Console.WriteLine("Request timed out");
                }
                Thread.Sleep(5000);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

真正的控制台应用程序有我自己的Azure URL,但问题显示在任何请求字符串,即使是谷歌,所以我不认为这是服务器端问题.当我运行代码时,前两个循环成功,即response.ContentLength报告.此后他们超时.为什么我只接到两个电话?我正在使用的实际应用程序使用HTTP GET定期报告状态,因此我需要重复执行此操作(超过两次!)

我应该注意到我已经尝试过:

  • 将未使用的查询属性添加到URL,以便每个URL都是不同的
  • 将超时设置为巨大的值
  • 绕过缓存

但这些都没有奏效.

httpwebrequest

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

CAP_PROP_FRAME_WIDTH未在'如何在Microsoft Visual Studio中使用OpenCV构建应用程序'示例代码中未声明

我按照如何在Microsoft Visual Studio中使用OpenCV构建应用程序中的说明,但我从示例代码中收到错误:

  • 错误C2065:'CAP_PROP_FRAME_WIDTH':未声明的标识符
  • 错误C2065:'CAP_PROP_FRAME_HEIGHT':未声明的标识符
  • 错误C2065:'CAP_PROP_FRAME_COUNT':未声明的标识符

我认为未声明的标识符应该在highgui中声明,所以为什么我不能获得它们尽管演示代码#include <opencv2/highgui/highgui.hpp>

以下是我采取的步骤.

  1. 我已将OpenCV(版本2.4.6)文件解压缩到C:\OpenCV,setx -m OPENCV_DIR C:\OpenCV\Build\x64\vc11从提升的命令提示符运行并添加%OPENCV_DIR%\bin到我的路径中(按照Windows中的安装说明).然后使用属性页面(视图 - >属性页或Shift-F4)设置为"所有配置"

  2. 我已添加$(OPENCV_DIR)\..\..\include到我的C/C++其他包含目录中

VS12属性页面截图

  1. 我已添加$(OPENCV_DIR)\lib到链接器附加库目录

VS12属性页面截图

  1. 我已将lib文件的目录列表剪切粘贴C:\OpenCV\build\x64\vc11\lib到我的输入Additional Dependencies中

VS12属性页面截图

  1. 我已经将文章中的示例代码复制到一个新的C++控制台应用程序(使用ATL).我不得不将模板代码中的一行更改int _tmain(int argc, _TCHAR* argv[])int _tmain(int argc, char* argv[])

我认为未声明的标识符应该是在highgui中声明的,所以为什么我没有得到它们尽管有演示代码#include <opencv2/highgui/highgui.hpp>

其他有类似问题的人在如何使用OpenCV在Microsoft Visual Studio注释中构建应用程序时遇到此示例代码似乎会出现链接错误(例如此处此处),但我正在通过链接器.

==========编辑==========

示例代码似乎存在更多难以克服的困难.它被记录为加载和显示其路径作为唯一参数提供的图像的简单示例main,而代码列表本身是需要四个命令行参数的视频代码(即它首先检查并停止,如果argc != 5).我提交了一个文档错误.我认为示例代码清单应该是从这个:https: …

opencv visual-studio-2012

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

以编程方式从 AzureML 运行获取 run_id

run = Run.get_context()
run_id = run.run_id
Run Code Online (Sandbox Code Playgroud)

产生错误

AttributeError:“_SubscribedRun”对象没有属性“run_id”

文档似乎表明这是从实验代码中收集 run_id 的正确方法。

我应该如何从 AzureML SDK 代码中收集 run_id?(注意,我正在使用一个隐藏对我的调用的库submit。)

azure-machine-learning-service

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

如何以及在何处为Visual C++ OpenCV项目添加调试符号

我在Visual Studio 2012中设置了一个OpenCV C++项目.为了使它工作,我使用了各种项目属性页面

  1. 其他包含目录:$(SolutionDir)..\Libs\OpenCV\2.4.6\include
  2. 其他库目录:$(SolutionDir)..\Libs\OpenCV\2.4.6\$(平台)\ $(配置)
  3. 附加依赖项:各种文件包括 opencv_highgui246d.dll
  4. 构建后事件,命令行:复制DLL和lib文件以及一些示例内容:

    xcopy/y $(SolutionDir)..\Libs\OpenCV\2.4.6\$(平台)\ $(配置)*.dll $(ProjectDir)$(平台)\ $(配置)\ xcopy/y $(SolutionDir )..\Libs\OpenCV\2.4.6\$(平台)\ $(配置)*.lib $(ProjectDir)$(平台)\ $(配置)\ xcopy/y $(ProjectDir)opencv-logo.jpg $(ProjectDir)$(平台)\ $(配置)\ xcopy/y $(ProjectDir)sample.wmv $(ProjectDir)$(平台)\ $(配置)\

我试图调试的代码行与VideoCapture这里给出的OpenCV类的示例代码中的代码行大致相同:http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html

VideoCapture cap(0); // open the default camera
if(!cap.isOpened())  // check if we succeeded
    return -1;
Run Code Online (Sandbox Code Playgroud)

但我正在打开一个文件

VideoCapture cap ("sample.wmv");
if (FileExists("sample.wmv"))
{
    OutputDebugString("File exists\n");
}
else
{
    OutputDebugString("File does not exist\n");
}
if(!cap.isOpened())
{
    cout <<"Failed to open camera" << endl;
    OutputDebugString("Failed to open camera\n"); …
Run Code Online (Sandbox Code Playgroud)

c++ debugging opencv visual-studio visual-c++

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