添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

网上查到的资料都不能直接用,看的头大,自己琢磨后整理如下

连接相机采集图片

这里不多赘述,参考MVS软件安装目录下的C# demo和开发文档
本文以海康CA060-10GC彩色相机为例, 需要设置相机采集像素格式为RGB8

IntPtr图片数据转换

//根据官方demo采集图片,前面还需要进行连接相机等工作
hkccd.MV_CC_StartGrabbing_NET();
MyCamera.MV_FRAME_OUT frameOut = new MyCamera.MV_FRAME_OUT();
//海康SDK能做的就到此为止,给你一个MV_FRAME_OUT结构体
int nRet = hkccd.MV_CC_GetImageBuffer_NET(ref frameOut, 1000);
//方法一:先把IntPrt转为byte数组,再转为Image类型
int picWidth = frameOut.stFrameInfo.nWidth;
int picHeight = frameOut.stFrameInfo.nHeight;
byte[] picBuff = new byte[picWidth * picHeight * 3];
Marshal.Copy(frameOut.pBufAddr, picBuff, 0, picBuff.Length);
//相机采集到的原图为RGB颜色空间,转为BGR才能用
for (int i = 0; i < picHeight; i++)
	for (int j = 0; j < picWidth; j++)
		byte chRed = picBuff[i * picWidth * 3 + j * 3];
		picBuff[i * picWidth * 3 + j * 3] = picBuff[i * picWidth * 3 + j * 3 + 2];
		picBuff[i * picWidth * 3 + j * 3 + 2] = chRed;
Image<Bgr, byte> img = new Image<Bgr, byte>(picWidth, picHeight);
img.Bytes = picBuff;
CvInvoke.Imwrite("image.bmp", img);//保存的图片正常就成功了
//方法二:通过Mat构造函数把IntPtr传进去
Mat srcImg = new Mat(new Size(picWidth, picHeight), DepthType.Cv8U, 3, frameOut.pBufAddr,picWidth*3);
Mat dstImg = new Mat();
//一样需要RGB转BGR
CvInvoke.CvtColor(srcImg, dstImg, ColorConversion.Rgb2Bgr);
CvInvoke.Imwrite("mat.bmp", dstImg );//保存的图片正常就成功了
linux版本环境比较麻烦,要注意自己的硬件系统是x86还是ARM等等,
我个人是ubuntu18
https://www.hikrobotics.com/cn/machinevision/service/download?module=0在海康官方下载其linux版本的MVS,下载完成后有很多版本的,根据自己电脑是x86或者arm来选择解压,同时在其中文文档中根据要求需要配置好环境变量!!!
文件夹中的海康文档给出了命令行
可以在终端中输入export查看环境变量是否导入了路径
第一次添加环境变量后需要重启(这点可能因人而异)
压缩包中有两个文件夹
一个是直接运行的脚本
一个是封装成类
根据需要自取,运行hik2cv.py即可
主动获取图像有两种方式:
方式一:调用 MV_CC_StartGrabbing_NET() 开始采集,需要自己开启一个buffer,然后在应用层循环调用 MV_CC_GetOneFrameTimeout_NET() 获取指定像素格式的帧数据,获取帧数据时上层应用程序需要根据帧率控制好调用该接口的频率。
方式二:调用 MV_CC_StartGrabbing_NET(...
				
海康彩色工业相机图像格式转换方法1.彩色相机是如何变成彩色的-Bayer的由来2.工业相机支持的图像格式3.图像格式转化 1.彩色相机是如何变成彩色的-Bayer的由来 提到工业相机图像格式,尤其是彩色相机的图像格式,不得不先讲一下bayer图像格式,网上有很多介绍这种图像格式的文档,随意引用一篇简单介绍下,引用链接: 图像bayer格式介绍以及bayer插值原理. 大致原理呢,就是相机上面的图像传感器只能感受光强而无法感知光的波长,然而光的颜色却是由波长决定的,因此图像传感器是无法记录颜色的。 虽然可以在
在用emgu的cvDisTransform函数时,除了简单的街区距离,其余距离都要求目标图为32位图像,因此,采用IntPtr dst = CvInvoke.cvCreateImage(CvInvoke.cvGetSize(src), Emgu.CV.CvEnum.IPL_DEPTH.IPL_DEPTH_32F, 1);创建目标图像,但是,如何将dst保存到Image里边呢?
/******************************************************************************/ /***************************MIplImage&IntPtr&Image<,>***************************/ /*************************************
halcon联合C#作图像的实时采集 1、做好halcon图像采集代码并将其转化为C#语言 2、打开VS2017选择Windows窗体应用程序并设置命名工程名称与保存路径。如下图: 在Form1上进行工具的填写 单击引用在右击添加引用,图中若不显示大框中的部分,浏览引用的路径为halcon安装目录下的bin->dotnet35下的halcondotnet.dll(动态链接库),若不知道在哪里,可回到桌面右击halcon图标查看文件所在位置,然后回到VS217单击浏览按钮做如下图操作: temp = np.asarray(pData2) # 将c_ubyte_Array转化成ndarray得到(3686400,) temp = temp.reshape((2592, 2048, 1)) # 根据自己分辨率进行转化 gray = cv2.cvtColor(temp,cv2.COLOR_BGR2GRAY) cv2.imshow("img", gray)
在使用labview调用海康威视工业相机之前,需要先确定相机型号和工作模式,以及相机与电脑的连接方式。根据相机型号和工作模式的不同,可以使用不同的API函数进行调用。 首先,在NI MAX(National Instruments Measurement & Automation Explorer)中建立一个新的设备,选择相应的VISA驱动,并将相机与电脑连接。在labview中,使用NI-IMAQ和NI-IMAQdx模块可以读取相机的参数并进行控制,例如设置曝光时间、增益等。 然后,在labview中创建一个新的VI(Virtual Instrument),并在block diagram中使用IMAQdx Open、IMAQdx Configure Grab和IMAQdx Grab函数进行图像采集和处理。通过IMAQdx Configure Grab函数可以设置采集模式、图像大小、颜色格式等参数,而IMAQdx Grab函数可以实现图像采集和图像数据流的传输。 最后,在labview中添加图像处理模块,例如Image Display、Image Processing等,可以对采集的图像数据进行处理和显示。如果需要将图像数据保存下来,可以使用Write BMP File、Write TIFF File等函数将图像数据保存为相应的文件格式。 需要注意的是,labview对于海康威视工业相机的支持还有一定的局限性,需要根据实际情况进行调试和优化,以获得更好的图像采集和处理效果。
CSDN-Ada助手: 非常感谢CSDN博主的分享,这篇博客对于想要学习EmguCV的C#开发者来说非常有用。我觉得下一篇博客可以继续探讨EmguCV在图像处理上的应用,比如在人脸识别、车牌识别等方面的实现,这样的技术文章对其他用户也会有很大帮助。相信会有更多读者期待你的下一篇博客。 为了方便博主创作,提高生产力,CSDN上线了AI写作助手功能,就在创作编辑器右侧哦~(https://mp.csdn.net/edit?utm_source=blog_comment_recall )诚邀您来加入测评,到此(https://activity.csdn.net/creatActivity?id=10450&utm_source=blog_comment_recall)发布测评文章即可获得「话题勋章」,同时还有机会拿定制奖牌。 Visual Studio C# Winform应用程序图标修改不了 更改图标不生效,发送桌面快捷方式与图标不一致解决办法 dulectc: 我也是,这样。明天试一下。表情包 Visual Studio C# Winform应用程序图标修改不了 更改图标不生效,发送桌面快捷方式与图标不一致解决办法 不客气,有用就行 Visual Studio C# Winform应用程序图标修改不了 更改图标不生效,发送桌面快捷方式与图标不一致解决办法 djdongting: 实际可用,多谢大神,复制了一下就好了。