- // FeatureAlgorithmGroup.cpp : 定义 DLL 应用程序的导出函数。
- //
- #include "stdafx.h"
- #include "FeatureAlgorithmGroup.h"
- #include<cv.h>
- #include<string>
- #include<iostream>
- #include<highgui.h>
- #include <opencv2/opencv.hpp>
- #include <opencv2/core/core.hpp>
- #include <opencv2/highgui/highgui.hpp>
- #include "opencv2/imgproc/imgproc.hpp"
- #include "opencv2/features2d/features2d.hpp"
- #include "opencv2/core/core.hpp"
- using namespace cv;
- using namespace std;
- FEATUREALGORITHMGROUP_API string _stdcall Hashcode(string path)
- {
- string pathh = "C:\\Users\\WaKing\\Desktop\\算法测试图片库\\原图\\3C极米原图1.jpg";
- Mat src = imread(pathh);
- if (src.empty())
- {
- char* str = "404 not found pricture";
- return str;
- }
- string rst(64, '\0');
- Mat img;
- if (src.channels() == 3)
- cvtColor(src, img, CV_BGR2GRAY);
- else
- img = src.clone();
- /*第一步,缩小尺寸。
- 将图片缩小到8x8的尺寸,总共64个像素,去除图片的细节*/
- resize(img, img, Size(8, 8));
- /* 第二步,简化色彩(Color Reduce)。
- 将缩小后的图片,转为64级灰度。*/
- uchar *pData;
- for (int i = 0; i<img.rows; i++)
- {
- pData = img.ptr<uchar>(i);
- for (int j = 0; j<img.cols; j++)
- {
- pData[j] = pData[j] / 4;
- }
- }
- /* 第三步,计算平均值。
- 计算所有64个像素的灰度平均值。*/
- int average = mean(img).val[0];
- /* 第四步,比较像素的灰度。
- 将每个像素的灰度,与平均值进行比较。大于或等于平均值记为1,小于平均值记为0*/
- Mat mask = (img >= (uchar)average);
- /* 第五步,计算哈希值。*/
- int index = 0;
- for (int i = 0; i<mask.rows; i++)
- {
- pData = mask.ptr<uchar>(i);
- for (int j = 0; j<mask.cols; j++)
- {
- if (pData[j] == 0)
- rst[index++] = '0';
- else
- rst[index++] = '1';
- }
- }
-
- return rst;
- }
复制代码- “DLLTest.vshost.exe”(CLR v4.0.30319: DLLTest.vshost.exe): 已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
- “DLLTest.vshost.exe”(CLR v4.0.30319: DLLTest.vshost.exe): 已加载“C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities\12.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
- “DLLTest.vshost.exe”(CLR v4.0.30319: DLLTest.vshost.exe): 已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
- “DLLTest.vshost.exe”(CLR v4.0.30319: DLLTest.vshost.exe): 已加载“C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities.Sync\12.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.Sync.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
- “DLLTest.vshost.exe”(CLR v4.0.30319: DLLTest.vshost.exe): 已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
- “DLLTest.vshost.exe”(CLR v4.0.30319: DLLTest.vshost.exe): 已加载“C:\WINDOWS\assembly\GAC_MSIL\Microsoft.VisualStudio.Debugger.Runtime\12.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Debugger.Runtime.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
- “DLLTest.vshost.exe”(CLR v4.0.30319: DLLTest.vshost.exe): 已加载“C:\Users\WaKing\Documents\Visual Studio 2013\Projects\DLLTest\DLLTest\bin\x86\Debug\DLLTest.vshost.exe”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
- “DLLTest.vshost.exe”(CLR v4.0.30319: DLLTest.vshost.exe): 已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
- “DLLTest.vshost.exe”(CLR v4.0.30319: DLLTest.vshost.exe): 已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xml.Linq\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.Linq.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
- “DLLTest.vshost.exe”(CLR v4.0.30319: DLLTest.vshost.exe): 已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Data.DataSetExtensions\v4.0_4.0.0.0__b77a5c561934e089\System.Data.DataSetExtensions.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
- “DLLTest.vshost.exe”(CLR v4.0.30319: DLLTest.vshost.exe): 已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Microsoft.CSharp\v4.0_4.0.0.0__b03f5f7f11d50a3a\Microsoft.CSharp.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
- “DLLTest.vshost.exe”(CLR v4.0.30319: DLLTest.vshost.exe): 已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
- “DLLTest.vshost.exe”(CLR v4.0.30319: DLLTest.vshost.exe): 已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
- “DLLTest.vshost.exe”(CLR v4.0.30319: DLLTest.vshost.exe): 已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources\v4.0_4.0.0.0_zh-Hans_b77a5c561934e089\mscorlib.resources.dll”。模块已生成,不包含符号。
- 线程 0x2978 已退出,返回值为 259 (0x103)。
- 线程 0x1450 已退出,返回值为 259 (0x103)。
- 线程 0x3f30 已退出,返回值为 259 (0x103)。
- “DLLTest.vshost.exe”(CLR v4.0.30319: DLLTest.vshost.exe): 已加载“C:\Users\WaKing\Documents\Visual Studio 2013\Projects\DLLTest\DLLTest\bin\x86\Debug\DLLTest.exe”。已加载符号。
- “DLLTest.vshost.exe”(CLR v4.0.30319: DLLTest.vshost.exe): 已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll”。已加载符号。
- “DLLTest.vshost.exe”(CLR v4.0.30319: DLLTest.vshost.exe): 已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Accessibility\v4.0_4.0.0.0__b03f5f7f11d50a3a\Accessibility.dll”。已加载符号。
- “System.BadImageFormatException”类型的第一次机会异常在 DLLTest.exe 中发生
- “System.BadImageFormatException”类型的未经处理的异常在 DLLTest.exe 中发生
- 其他信息: 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
- “DLLTest.vshost.exe”(CLR v4.0.30319: DLLTest.vshost.exe): 已加载“C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll”。已跳过加载符号。模块进行了优化,并且调试器选项“仅我的代码”已启用。
复制代码 vs2013 下 有opencv环境的VC++ 编写的DLL,可以去试一下调用。 不知道是DLL的问题,还是C#的问题,我用C++调用也没有成功。
|