Tag: python

可以让Python从C#接收一个可变长度的字符串数组吗?

这可能是一个红色的鲱鱼,但我的非arrays版本看起来像这样: C# using RGiesecke.DllExport; using System.Runtime.InteropServices; namespace Blah { public static class Program { [DllExport(“printstring”, CallingConvention = CallingConvention.Cdecl)] [return: MarshalAs(UnmanagedType.AnsiBStr)] public static string PrintString() { return “Hello world”; } } } python import ctypes dll = ctypes.cdll.LoadLibrary(“test.dll”) dll.printstring.restype = ctypes.c_char_p dll.printstring() 我正在寻找一个可以获取可变大小的List的printstrings 。 如果那是不可能的,我会选择一个固定长度的string[] 。

从C#调用python代码(.py文件)

我有一些python代码执行某项任务。 我需要从C#调用此代码而不将python文件转换为.exe,因为整个应用程序都是基于C#构建的。 我怎样才能做到这一点?

Python hmac和C#hmac

我们有一个python Web服务。 它需要一个哈希作为参数。 python中的哈希是以这种方式生成的。 hashed_data = hmac.new(“ant”, “bat”, hashlib.sha1) print hashed_data.hexdigest() 现在,这就是我如何从C#生成哈希。 ASCIIEncoding encoder = new ASCIIEncoding(); Byte[] code = encoder.GetBytes(“ant”); HMACSHA1 hmSha1 = new HMACSHA1(code); Byte[] hashMe = encoder.GetBytes(“bat”); Byte[] hmBytes = hmSha1.ComputeHash(hashMe); Console.WriteLine(Convert.ToBase64String(hmBytes)); 但是,我出来的结果不同了。 我应该改变散列的顺序吗? 谢谢, 乔恩

在python中使用ctypes来访问C#dll的方法

我想在我的python程序的关键部分实现C#代码,以使其更快。 它说(在Python文档和本站点上 )您可以加载动态链接库(以及PyDocs),如下所示: cdll.LoadLibrary(“your-dll-goes-here.dll”) 这是我的代码中负责此function的部分: from ctypes import * z = [0.0,0.0] c = [LEFT+x*(RIGHT-LEFT)/self.size, UP+y*(DOWN-UP)/self.size] M = 2.0 iterator = cdll.LoadLibrary(“RECERCATOOLS.dll”) array_result = iterator.Program.ITERATE(z[0],z[1],c[0],c[1],self.iterations,M) z = complex(array_result[0],array_result[1]) c = complex(array_result[2],array_result[3]) last_iteration = int(round(array_result[4])) 我使用的RECERCATOOLS.dll就是这个(C#代码,而不是C或C ++): using System; using System.Collections.Generic; using System.Linq; using System.Text; using KarlsTools; public class Program { public static Array ITERATE(double z_r,double […]

使用OpenCV检测来自一个图像的对象是否在另一个图像中

我有一个包含对象的示例图像,如下图中的耳环: View post on imgur.com 然后,我有一个大的候选图像集,我需要确定哪一个最有可能包含对象,例如: View post on imgur.com 所以我需要为每个图像生成一个分数,其中最高分对应于最可能包含目标对象的图像。 现在,在这种情况下,我有以下条件/约束来处理/周围: 1)我可以获得不同角度的多个样本图像。 2)样本图像可能与候选图像处于不同的分辨率,角度和距离。 3)有很多候选图像(> 10,000),所以它必须相当快。 4)我愿意为速度牺牲一些精度,所以如果这意味着我们必须搜索前100名而不是前10名,这很好,可以手动完成。 5)我可以手动操作样本图像,例如勾勒出我想要检测的对象; 候选图像不能手动操作,因为太多了。 6)我根本没有OpenCV或计算机视觉的真实背景,所以我从头开始。 我最初的想法是首先在样本图像中围绕对象绘制粗略轮廓。 然后,我可以识别候选图像中的对象和角落的角落。 我可以分析每个角落周围的像素,看看它们是否看起来相似,然后按每个角落的最大相似度得分的总和进行排名。 我也不确定如何量化类似的像素。 我想只是他们的RGB值的欧几里德距离? 问题在于它忽略了对象的中心。 在上面的例子中,如果耳环的角落都在金框附近,那么它就不会考虑耳环内的红色,绿色和蓝色gem。 我想我可以通过查看所有角对并通过沿着它们之间的线采样一些点来确定相似性来改进这一点。 所以我有几个问题: A)这种思路一般是否有意义,或者是否有一些我缺失的东西? B)我应该调查OpenCV的哪些特定算法? 我知道有多个角点检测算法,但我只需要一个,如果差异都在边缘上进行优化,那么我最好用。 C)使用算法的任何示例代码都有助于我的理解? 我的语言选择是Python或C#。

为什么这个明显的无限递归没有给出编译器警告?

几个月前,我不得不修复一些导致一些问题的代码。 代码看起来基本上是这样的: int badFun() { return badFun(); } 这显然导致了堆栈溢出,即使在我正在使用的高级语言中(SilkTest中的4Test)。 这段代码无法被视为有益。 问题的第一个迹象是脚本完成后看到的警告,但没有编译错误或警告。 奇怪的是,我尝试用C ++,C#和Python编写具有相同结构的程序,并且所有这些程序都编译/解释时没有语法错误或警告,即使在所有情况下都存在运行时错误。 在任何这些情况下我都没有看到任何警告。 为什么默认情况下这不是一个可能的问题? 编辑:我尝试用所有三种语言编写相应的函数,所以我添加了这些函数标签。 我对代码这样的代码没有任何警告的整体原因更感兴趣。 如有必要,请重新登记。

使用IPC在Python和C#之间进行通信的最简单方法?

我有一些C#代码需要调用Python脚本数千次,每次传递一个字符串,然后期望浮回。 python脚本可以使用任何版本的Python运行,所以我不能使用Iron python。 我建议使用IPC命名管道。 我没有这方面的经验,也很难弄清楚如何在C#和Python之间做到这一点。 这是一个简单的过程,还是我正在寻找相当数量的工作? 这是解决我问题的最佳方法吗?

在Python中创建一个C#Nullable Int32(使用Python.NET),使用可选的int参数调用C#方法

我正在使用Python.NET加载C#程序集以从Python调用C#代码。 这很干净,但是我遇到一个问题,调用一个如下所示的方法: Our.Namespace.Proj.MyRepo中的方法: OutputObject GetData(string user, int anID, int? anOptionalID= null) 我可以为存在可选的第三个参数的情况调用该方法,但是无法确定要为第三个参数传递什么以匹配null情况。 import clr clr.AddReference(“Our.Namespace.Proj”) import System from Our.Namespace.Proj import MyRepo _repo = MyRepo() _repo.GetData(‘me’, System.Int32(1), System.Int32(2)) # works! _repo.GetData(‘me’, System.Int32(1)) # fails! TypeError: No method matches given arguments _repo.GetData(‘me’, System.Int32(1), None) # fails! TypeError: No method matches given arguments iPython Notebook表明最后一个参数应该是类型: System.Nullable`1[System.Int32] 只是不确定如何创建一个与Null案例相匹配的对象。 有关如何创建C#识别的Null对象的任何建议? […]

可以使用Regex进行这种特殊的字符串操作吗?

我需要在字符串中用字符(比如说) P替换字符(比如说) x ,但前提是它包含在带引号的子字符串中。 一个例子使它更清楚: axbx’cxdxe’fxgh’ixj’k -> axbx’cPdPe’fxgh’iPj’k 为简单起见,我们假设引号总是成对出现。 显而易见的方法是一次只处理一个字符串(一个简单的状态机方法); 但是,我想知道是否可以使用正则表达式一次完成所有处理。 我的目标语言是C#,但我想我的问题与任何有正则表达式内置或库支持的语言有关。

在C#.NET中调用Ruby或Python API

我有许多我在Ruby和Python中开发的API / Classes,我想在我的.NET应用程序中使用它们。 是否可以在C#中实例化Ruby或Python对象并调用其方法? 似乎像IronPython这样的图书馆就是这样做的。 这意味着,他们允许Python使用.NET对象,但不是我正在寻找的这个的倒数…我在这里遗漏了什么? 有任何想法吗?