{
// #region Color Pallette
/// <summary>
/// The ColorPalette of Grayscale for Bitmap Format8bppIndexed
/// </summary>
public static readonly ColorPalette GrayscalePalette = GenerateGrayscalePalette();
private static ColorPalette GenerateGrayscalePalette()
{
using (Bitmap image = new Bitmap(1, 1, PixelFormat.Format8bppIndexed))
{
ColorPalette palette = image.Palette;
for (int i = 0; i < 256; i++)
{
palette.Entries = Color.FromArgb(i, i, i);
}
return palette;
}
}
}
三、托管形式调用C++中的代码:
(1)C++工程下建“win32项目”应用程序的dll
![]()
(2)建头文件:factory.h
#ifndef FACTORY_H
#define FACTORY_H
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
class factory
{
public:
void show();
};
#endif
(3)建CPP factory.cpp
#include"factory.h"
#include<opencv2/opencv.hpp>
using namespace cv;
void factory::show()
{
Mat img=imread("E://Image//1.jpg");
imshow("src",img);
waitKey(0);
}
(4)建头文件clrClass.h
#pragma once
#include"factory.h"
public ref class clrClass
{
public:
clrClass(void);
~clrClass(void);
int member;
void showImage();
private:
factory *clrFac;
};
(5)建CPP clrClass.cpp
#include"clrClass.h"
#include"factory.h"
clrClass::clrClass(void)
{
clrFac=new factory();
}
clrClass::~clrClass(void)
{
}
void clrClass::showImage()
{
clrFac->show();
}
(6)使用C++托管类进行封装。新增clrClass类。imreadimread并且右击C++项目->属性->配置属性->公共语言运行时支持->公共语言运行时支持(、\clr),然后进行编译生成DLL。托管形式不是将生成的dll放在C#项目工程的bin->debug目录下,使用方法后面介绍
(7)C#创建控制台应用程序
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace gg2
{
class Program
{
[STAThread]
static void Main(string[] args)
{
clrClass clr = new clrClass();
clr.showImage();
}
}
}
(8)右击C#项目中的引用,将生成的dll添加在引用中,就可以使用C++的类方法了
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-63301-3.html
对你来说