Tag: C#的

怎样才能打印一个size_tvariables可移植地使用printf家族?

我有一个size_ttypes的variables,我想用printf()来打印。 我用什么格式说明书来便携地打印? 在32位机器中, %u似乎是正确的。 我编译与g ++ -g -W -Wall -Werror -ansi -pedantic,并没有警告。 但是,当我在64位机器上编译该代码时,它会产生警告。 size_t x = <something>; printf( "size = %u\n", x ); warning: format '%u' expects type 'unsigned int', but argument 2 has type 'long unsigned int' 如预期的那样,如果我改变成%lu ,警告就会消失。 问题是,如何编写代码,以便在32位和64位计算机上编译警告? 编辑:我想一个答案可能是“投”variables为unsigned long ,并打印使用%lu 。 这在两种情况下都会起作用。 我正在查看是否有任何其他的想法。

简单certificateGUID不是唯一的

我想certificate一个简单的testing程序中的GUID不是唯一的。 我期望下面的代码运行几个小时,但它不工作。 我怎样才能使它工作? BigInteger begin = new BigInteger((long)0); BigInteger end = new BigInteger("340282366920938463463374607431768211456",10); //2^128 for(begin; begin<end; begin++) Console.WriteLine(System.Guid.NewGuid().ToString()); 我正在使用C#。

image processing:“可口可乐jar”识别的algorithm改进

过去几年中我最感兴趣的项目之一是关于image processing的项目。 我们的目标是build立一个能够识别可口可乐“jar头”的系统 (注意,我强调“jar头”这个词,你会在一分钟内看到为什么)。 您可以在下面看到一个示例,可以在具有缩放和旋转的绿色矩形中识别。 项目的一些限制: 背景可能非常嘈杂。 jar头可以有任何规模或旋转 ,甚至方向(在合理范围内)。 图像可能有一定程度的模糊性(轮廓可能不完全是直的)。 图像中可能有可口可乐瓶,algorithm只能检测jar头 ! 图像的亮度可能会有很大的变化(所以你不能在颜色检测上“太多”)。 jar子可以部分隐藏在侧面或中间,可能部分隐藏在瓶子后面。 在图像中完全没有可能 ,在这种情况下,你必须找不到任何东西,并写下这样的消息。 所以你最终可能会遇到这样棘手的事情(在这种情况下,我的algorithm完全失败): 前段时间我做了这个项目,做了很多乐趣,而且我有一个体面的实现。 以下是关于我的实现的一些细节: 语言 :使用OpenCV库在C ++中完成。 预处理 :对于图像预处理,即将图像转换为更加原始的forms给予algorithm,我使用了2种方法: 将颜色区域从RGB更改为HSV,并根据“红色”色调进行过滤,在某个阈值以上进行饱和以避免类橙色,并对低值进行过滤以避免产生深色调。 最终的结果是一个二进制的黑白图像,其中所有的白色像素将代表匹配这个阈值的像素。 很明显,图像中仍然有很多垃圾,但是这会减less你需要处理的尺寸数量。 使用中值滤波进行噪声滤波(取所有邻居的中值像素值并用此值replace像素)以降低噪声。 使用Canny边缘检测filter在2个先例步骤之后获得所有项目的轮廓。 algorithm :我为这个任务select的algorithm本身是从这个真棒书籍特征提取,被称为广义霍夫变换 (有别于正则霍夫变换)。 它基本上说了几件事情: 你可以在不知道parsing方程的情况下在空间中描述一个物体(这里就是这种情况)。 它能抵抗像缩放和旋转等图像变形,因为它将基本上针对比例因子和旋转因子的每个组合来testing图像。 它使用algorithm将“学习”的基本模型(模板)。 剩余在轮廓图像中的每个像素将基于从模型中学习的内容投票给另一像素,该像素将被认为是对象的中心(就重力而言)。 最后,最后得到一个热图,例如在这里jar子轮廓的所有像素都会投票给它的引力中心,所以你将会在相同的像素中得到很多的投票。中心,并将在热图中看到一个高峰,如下所示: 一旦你有了这一点,一个简单的基于阈值的启发式可以给你的中心像素的位置,从中你可以导出的规模和旋转,然后绘制你的小矩形周围(最终规模和旋转因素显然是相对于你原始模板)。 理论上至less… 结果 :现在,虽然这种方法在基本案例中起作用,但在一些领域却严重缺乏: 这是非常缓慢 ! 我没有强调这一点。 需要几乎整整一天来处理30个testing图像,显然是因为我有一个非常高的旋转和平移比例因子,因为一些jar子很小。 当图像中的瓶子完全丢失时,由于某种原因,几乎总是find瓶子而不是jar子(也许是因为瓶子更大,因此像素更多,因此票数更多) 模糊的图像也是不好的,因为投票结果在中心周围的随机位置像素,从而结束了一个非常嘈杂的热图。 翻译和旋转方面的差异已经达到了,但是没有定位,这意味着没有直接面对相机目标的一个jar子没有被识别。 你能帮助我改进我的具体algorithm,只使用OpenCVfunction来解决上述四个具体问题吗? 我希望有些人也会从中学到一些东西,毕竟我不仅想问问题的人应该学习。 🙂

传递数组的C大小

可能重复: 如何findsizeof(一个指向数组的指针) 我知道sizeof运算符是在编译时被评估和replace为一个常量。 既然如此,一个函数如何在一个程序的不同点上传递不同的数组,来计算它的大小呢? 我可以将它作为parameter passing给函数,但是如果不是绝对必须的话,我不需要添加其他参数。 下面是一个例子来说明我在问什么: #include <stdio.h> #include <stdlib.h> #define SIZEOF(a) ( sizeof a / sizeof a[0] ) void printarray( double x[], int ); int main() { double array1[ 100 ]; printf( "The size of array1 = %ld.\n", SIZEOF( array1 )); printf( "The size of array1 = %ld.\n", sizeof array1 ); printf( "The […]

你如何获得foreach循环的当前迭代的索引?

是否有一些罕见的语言构造我没有遇到(像我最近学到的一些堆栈溢出一些)在C#中获得一个值代表一个foreach循环的当前迭代? 例如,我现在根据情况做这样的事情: int i=0; foreach (Object o in collection) { // … i++; }

如何接受文件POST

我正在使用asp.net mvc 4 webapitesting版来构build一个rest服务。 我需要能够从客户端应用程序接受张贴的图像/文件。 这可能使用webapi吗? 以下是我目前正在使用的操作。 有没有人知道这个应该如何工作的例子? [HttpPost] public string ProfileImagePost(HttpPostedFile profileImage) { string[] extensions = { ".jpg", ".jpeg", ".gif", ".bmp", ".png" }; if (!extensions.Any(x => x.Equals(Path.GetExtension(profileImage.FileName.ToLower()), StringComparison.OrdinalIgnoreCase))) { throw new HttpResponseException("Invalid file type.", HttpStatusCode.BadRequest); } // Other code goes here return "/path/to/image.png"; }

返回null还是空集合更好?

这是一个普遍的问题(但我正在使用C#),什么是最好的方法(最佳实践),你是否返回null或空集合的方法有一个集合作为返回types?

如何找出一个项目是否存在于std :: vector中?

我所要做的就是检查vector中是否存在一个元素,这样我就可以处理每个case。 if ( item_present ) do_this(); else do_that();

-pthread标志在编译时的意义

在各种multithreading的C和C ++项目中,我已经看到了-pthread标志应用于编译和链接阶段,而其他标志完全不使用它,只是将-lpthread传递给链接阶段。 有没有编译和链接与-pthread标志的任何危险 – 即-pthread实际上做什么? 我主要对Linux平台感兴趣。

可以从STL容器inheritance实现,而不是委托吗?

我有一个类,它适应std :: vector模型的特定于域的对象的容器。 我想将大部分std :: vector API暴露给用户,以便他/她可以在容器上使用熟悉的方法(大小,清除,等等)和标准algorithm。 这在我的devise中似乎是一个重复出现的模式: class MyContainer : public std::vector<MyObject> { public: // Redeclare all container traits: value_type, iterator, etc… // Domain-specific constructors // (more useful to the user than std::vector ones…) // Add a few domain-specific helper methods… // Perhaps modify or hide a few methods (domain-related) }; 我意识到在重用类实现时宁愿合成inheritance的做法 – 但是这是有限制的! […]