Tag: opencv

在C ++中将它们从C#发送到OpenCV后得到扭曲的图像?

我从我的C ++类创建了一个C DLL,它使用OpenCV进行图像处理,并希望在我的C#应用​​程序中使用这个DLL。 目前,这就是我实现它的方式: #ifdef CDLL2_EXPORTS #define CDLL2_API __declspec(dllexport) #else #define CDLL2_API __declspec(dllimport) #endif #include “../classification.h” extern “C” { CDLL2_API void Classify_image(unsigned char* img_pointer, unsigned int height, unsigned int width, char* out_result, int* length_of_out_result, int top_n_results = 2); //… } C#相关代码: DLL导入部分: //Dll import [DllImport(@”CDll2.dll”, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi)] static extern void Classify_Image(IntPtr […]

查找轮廓之间的最小距离

我在图像中有很多形状,我想在arrays中保存它们的轮廓。 我的意思是我想要数组1中形状1的轮廓坐标,数组2中的形状2的坐标… 如果有两个形状,我如何使用它们的坐标绘制它们之间的最短线? 例如,在对图像进行多次操作后,我得到了这个结果 找到轮廓后: 所以我需要每个形状轮廓的坐标来计算它们之间的最短距离

如何使用opencv均衡图像的对比度和亮度?

我有一张我扫描过的图像,但白纸在屏幕上不是白色的。 有没有办法平衡合同/亮度,使背景更白? 更新 我尝试过EmguCv中建议的Image._EqualizeHist函数: string file = @”IMG_20120512_055533.jpg”; Image originalColour = new Image(file); Image improved = originalColour.Clone(); improved._EqualizeHist(); 但是得到更糟糕的结果(同样在第一次灰度缩放时): 我错过了其他参数吗?

OpenCV + Unity3D集成

我是团结开发人员,第一次尝试使用opencv。 我最初的目标是运行相机并通过unity3d中的opencv检测blob。 我是OpenCV的新手,我正在尝试将它集成到Unity3D中(在Windows 8上使用Unity 4.3.2,在Mac上使用Unity 4.2.1f)。 我跟着这个post。 但是,一旦添加新的C#脚本,我就会收到以下错误。 当我删除这个脚本的那一刻,错误发生了(这个脚本是Unity生成的C#脚本)。 Internal compiler error. See the console log for more information. output was: Unhandled Exception: System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded. at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool) at System.Reflection.Assembly.GetTypes () [0x00000] in :0 at Mono.CSharp.RootNamespace.ComputeNamespaces (System.Reflection.Assembly assembly, System.Type extensionType) [0x00000] in :0 at Mono.CSharp.RootNamespace.ComputeNamespace (Mono.CSharp.CompilerContext […]

输入初始化exception

我创建了imageHolder类: public class ImageHolder : Image { private String imagePath; public ImageHolder(String path):base(path) { this.imagePath = path; } public String imgPathProperty { get { return imagePath; } set { imagePath = value; } } } 我创建类的实例并初始化它,如下所示: private ImageHolder originalImageHolder; originalImageHolder = new ImageHolder(openFileDialog.FileName); 在运行时我得到这个例外: ‘Emgu.CV.CvInvoke’的类型初始值设定项引发了exception。 这是Solution Explorer窗口: 任何想法为什么我得到这个例外,我该如何解决它? 先感谢您。

在IIS上发布时出现EmguCVexception

如果我在本地IIS上调试或运行它,我的ASP.NET应用程序工作正常。 但是如果我将它发布到IIS上,看起来EmguCV就会失去它所需要的dll。 我的VS项目的bin文件夹和IIS上的bin文件夹是相同的。 发生以下exception:’Emgu.CV.CvInvoke’的类型初始值设定项引发exception。 StackTrace:位于Emgu.CV.Image的Emgu.CV.CvInvoke.cvCreateImageHeader(大小,IPL_DEPTH深度,Int32通道) 2.AllocateData(Int32 rows, Int32 cols, Int32 numberOfChannels) at Emgu.CV.Image 2.set_Bitmap(位图)来自CustomerserviceWizard.ImageHelper.DecodeUrl(LuminanceSource source,Bitmap bitmap,List`1方法)in:line 213 任何帮助表示赞赏。

将OpenCV Mat转换为Texture2D?

元语境: 我正在开发一款利用opencv替代普通输入(键盘,鼠标等)的游戏。 我通过DllImports在C ++中使用Unity3D的C#脚本和opencv。 我的目标是在我的游戏中创建一个来自opencv的图像。 代码背景: 正如通常在OpenCV中所做的那样,我使用Mat来表示我的图像。 这是我导出图像字节的方式: cv::Mat _currentFrame; … extern “C” byte * EXPORT GetRawImage() { return _currentFrame.data; } 这就是我从C#导入的方式: [DllImport (“ImageInputInterface”)] private static extern IntPtr GetRawImage (); … public static void GetRawImageBytes (ref byte[] result, int arrayLength) { IntPtr a = GetRawImage (); Marshal.Copy(a, result, 0, arrayLength); FreeBuffer(a); } 从我理解OpenCV的方式来看,我希望在uchar指针中序列化时,以这种方式构造字节数组: b1, g1, […]