首页 > 其他分享 >有效的GOCsharpHelper1.0(源代码开放)

有效的GOCsharpHelper1.0(源代码开放)

时间:2022-12-22 12:31:08浏览次数:40  
标签:strResult img GOCsharpHelper1.0 Image object Bitmap 源代码 开放 clr



csharp编写界面,调用基于opencv的图像处理类库,是解决一类问题的优良方法。经过不懈研究,有最新进展:



一、目前情况和优点


       位置在11.通过clr

有效的GOCsharpHelper1.0(源代码开放)_图像处理


       架在clr.dll中


String^  Class1::Method(cli::array<unsigned char>^ pCBuf1)
{
pin_ptr<System::Byte> p1 = &pCBuf1[0];
unsigned char* pby1 = p1;
cv::Mat img_data1(pCBuf1->Length,1,CV_8U,pby1);
cv::Mat img_object = cv::imdecode(img_data1,IMREAD_UNCHANGED);
//处理过
cvtColor(img_object,img_object,40);

if (!img_object.data)
return nullptr;
//获得目录,保存文件
cv::imwrite("c:/strDst.jpg",img_object);
return "c:/strDst.jpg";
}


class GOCsharpHelper
{
Class1 client = new Class1();
string strResult = null;
//输入参数是string或bitmap
public Bitmap ImageProcess(string ImagePath){
Image ImageTemp = Bitmap.FromFile(ImagePath);
return ImageProcess(ImageTemp);
}
//输出结果是bitmap
public Bitmap ImageProcess(Image image)
{
MemoryStream ms = new MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] bytes = ms.GetBuffer();
strResult = client.Method(bytes);
Image ImageResult = Bitmap.FromFile(strResult);
return (Bitmap)ImageResult;
}
public void Clear()
{

if(File.Exists(strResult))
File.Delete(strResult);
}
}

构然后有细节
 

private void button2_Click(object sender, EventArgs e)
{
if (pictureBox1.Image != null)
pictureBox1.Image.Dispose();
Image image = gocsharphelper.ImageProcess(" E:/sandbox/logo.jpg");
pictureBox1.Image = image;

}


有效的GOCsharpHelper1.0(源代码开放)_图像处理_02


有效的GOCsharpHelper1.0(源代码开放)_图像处理_03


通过复杂的方法,将串读入进来,然后转换为mat.这个过程是在内存中进行的,而且效果良好。但是imdecode采用了file I/O的方法,所以和直接写入磁盘是效果一样的。
此外,为opencv生成clr的dll,csharp中直接引用。
       优点:
       1、clr的优点,方便引用和调试;
       2、会生成过程文件,但是能够自动删除。
       3、效率还是有保障的。
二、存在问题
       主要问题还是发展的问题,新的模型,少有人运作,能否用于实际?框架是否合理?
三、发展计划
       算法衍生:我将现有代码运用于GOImageReasearch中,取得一些效果。

有效的GOCsharpHelper1.0(源代码开放)_Image_04


标签:strResult,img,GOCsharpHelper1.0,Image,object,Bitmap,源代码,开放,clr
From: https://blog.51cto.com/jsxyhelu2017/5962556

相关文章