您的位置:首页 > 健康 > 美食 > c#调用python代码,实现读取npy的数据并显示图像

c#调用python代码,实现读取npy的数据并显示图像

2025/4/21 12:21:24 来源:https://blog.csdn.net/orangapple/article/details/140796933  浏览:    关键词:c#调用python代码,实现读取npy的数据并显示图像

本例子实现的功能是:

       根据stat.npy、ops.npy两个npy文件的内容,显示图形

1. 用python代码实现读取两个文件,文件名为read_npy.py,代码如下:

import numpy as npdef read_npy_files(stat_file, ops_file):stat = np.load(stat_file, allow_pickle=True)ops = np.load(ops_file, allow_pickle=True).item()return stat, ops

2. 在c#代码里,先设置python环境,再得到两个数组,最后根据数组显示图像,c#代码如下:

 int ncells = 46;// 设置 Python 虚拟环境的路径string pathToVirtualEnv = @"D:\ProgramData\anaconda3\suite2p";Environment.SetEnvironmentVariable("PATH", pathToVirtualEnv, EnvironmentVariableTarget.Process);Environment.SetEnvironmentVariable("PYTHONHOME", pathToVirtualEnv, EnvironmentVariableTarget.Process);Environment.SetEnvironmentVariable("PYTHONPATH", $"{pathToVirtualEnv}\\Lib\\site-packages;{pathToVirtualEnv}\\Lib", EnvironmentVariableTarget.Process);// 设置 Python DLL 的路径Runtime.PythonDLL = @"D:\ProgramData\anaconda3\suite2p\python39.dll";PythonEngine.PythonHome = pathToVirtualEnv;PythonEngine.PythonPath = PythonEngine.PythonPath + ";" + Environment.GetEnvironmentVariable("PYTHONPATH", EnvironmentVariableTarget.Process);PythonEngine.Initialize();// 读取 .npy 文件dynamic read_npy = Py.Import("read_npy");using (Py.GIL()){var result = read_npy.read_npy_files("stat.npy", "ops.npy");var stat = result[0];var ops = result[1];int Ly = Convert.ToInt32(ops["Ly"].ToString());int Lx = Convert.ToInt32(ops["Lx"].ToString());// 创建一个空图像var im = np.zeros(new Shape(Ly, Lx));for (int n = 0; n < ncells; n++){var ypix = stat[n]["ypix"];var xpix = stat[n]["xpix"];var overlap = stat[n]["overlap"];for (int i = 0; i < (int)ypix.shape[0]; i++){if (!Convert.ToBoolean(overlap[i].ToString())){im[ypix[i].ToString(), xpix[i].ToString()] = n + 1;}}}// 将 NumSharp 的 NDArray 转换为 OpenCvSharp 的 Matfloat[] imData = im.astype(np.float32).ToArray<float>();Mat imMat = new Mat(Ly, Lx, MatType.CV_32F);imMat.SetArray(imData);// 显示图像Cv2.ImShow("Image", imMat);}// 关闭 Python 引擎PythonEngine.Shutdown();

3. 运行后的结果如下:

完整的代码如下:

https://download.csdn.net/download/orangapple/89598350

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com