gpt4 book ai didi

最有效地裁剪 IplImage

转载 作者:太空狗 更新时间:2023-10-29 17:23:50 30 4
gpt4 key购买 nike

我想知道在 opencv 中裁剪 IplImage 的最有效方法是什么。我目前正在执行以下操作,但它似乎太复杂了,我确信有更好的方法。

    // set ROI on original image, create 'tmp' image and copy data over.
cvSetImageROI(orig_image, cvRect(55, 170, 530, 230));

IplImage *tmp = cvCreateImage(cvGetSize(orig_image),
orig_image->depth,
orig_image->nChannels);

cvCopy(m_depth_run_avg, tmp, NULL);
cvResetImageROI(orig_image);

// copy temporary image back to original image.
IplImage *orig_image= cvCreateImage(cvGetSize(tmp),
tmp->depth,
tmp->nChannels);
cvCopy(tmp, orig_image, NULL);

有没有更好的裁剪图片的方法?

最佳答案

,有。您似乎在最后重新创建原始图像。这不是必需的,如以下代码所示:

IplImage* orig = cvLoadImage("test.jpg");
if (!orig)
{
return -1;
}
printf("Orig dimensions: %dx%d\n", orig->width, orig->height);

cvSetImageROI(orig, cvRect(0, 250, 350, 350));

IplImage *tmp = cvCreateImage(cvGetSize(orig),
orig->depth,
orig->nChannels);

cvCopy(orig, tmp, NULL);
cvResetImageROI(orig);

orig = cvCloneImage(tmp);
printf("Orig dimensions after crop: %dx%d\n", orig->width, orig->height);

cvNamedWindow( "result", CV_WINDOW_AUTOSIZE );
cvShowImage( "result", orig);
cvWaitKey( 0 );
cvDestroyWindow( "result" );

不幸的是,您必须创建一个临时图像来存储 cvCopy() 的结果。

关于最有效地裁剪 IplImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12586180/

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