gpt4 book ai didi

c++ - OpenCV : convert the pointer in memory to image

转载 作者:搜寻专家 更新时间:2023-10-31 00:01:27 26 4
gpt4 key购买 nike

我有一个抓取器可以获取图像并使用以下代码在屏幕上显示它们

while((lastPicNr = Fg_getLastPicNumberBlockingEx(fg,lastPicNr+1,0,10,_memoryAllc))<200) {                                                           
iPtr=(unsigned char*)Fg_getImagePtrEx(fg,lastPicNr,0,_memoryAllc);
::DrawBuffer(nId,iPtr,lastPicNr,"testing"); }

但我想使用指向图像数据的指针并用 OpenCV 显示它们,因为我需要对像素进行处理。我的相机是 CCD 单色相机,像素深度是 8 位。我是 OpenCV 的新手,opencv 中是否有任何选项可以返回 (unsigned char*)Fg_getImagePtrEx(fg,lastPicNr,0,_memoryAllc);并将其显示在屏幕上?或者从 iPtr 指针获取数据并允许我使用图像数据?

最佳答案

unsigned char* raw_data 创建一个 IplImage 需要 2 条重要指令:cvCreateImageHeader()cvSetData() :

// 1 channel for mono camera, and for RGB would be 3
int channels = 1;
IplImage* cv_image = cvCreateImageHeader(cvSize(width,height), IPL_DEPTH_8U, channels);
if (!cv_image)
{
// print error, failed to allocate image!
}

cvSetData(cv_image, raw_data, cv_image->widthStep);

cvNamedWindow("win1", CV_WINDOW_AUTOSIZE);
cvShowImage("win1", cv_image);
cvWaitKey(10);

// release resources
cvReleaseImageHeader(&cv_image);
cvDestroyWindow("win1");

我还没有测试代码,但是您正在寻找的代码的路线图就在那里。

关于c++ - OpenCV : convert the pointer in memory to image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10124717/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com