有效的GOCsharpHelper1.0(源代码开放)
csharp编写界面,调用基于opencv的图像处理类库,是解决一类问题的优良方法。经过不懈研究,有最新进展:
一、目前情况和优点
位置在11.通过clr
架在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; }
通过复杂的方法,将串读入进来,然后转换为mat.这个过程是在内存中进行的,而且效果良好。但是imdecode采用了file I/O的方法,所以和直接写入磁盘是效果一样的。
此外,为opencv生成clr的dll,csharp中直接引用。
优点:
1、clr的优点,方便引用和调试;
2、会生成过程文件,但是能够自动删除。
3、效率还是有保障的。
二、存在问题
主要问题还是发展的问题,新的模型,少有人运作,能否用于实际?框架是否合理?
三、发展计划
算法衍生:我将现有代码运用于GOImageReasearch中,取得一些效果。
此外,为opencv生成clr的dll,csharp中直接引用。
优点:
1、clr的优点,方便引用和调试;
2、会生成过程文件,但是能够自动删除。
3、效率还是有保障的。
二、存在问题
主要问题还是发展的问题,新的模型,少有人运作,能否用于实际?框架是否合理?
三、发展计划
算法衍生:我将现有代码运用于GOImageReasearch中,取得一些效果。
文中提及的代码实现
http://files.cnblogs.com/files/jsxyhelu/ClassLibrary1.zip
http://files.cnblogs.com/files/jsxyhelu/GOImageResearch.zip
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!