gpt4 book ai didi

c++ - OpenCV 类型独立图像访问的最佳方式?

转载 作者:太空狗 更新时间:2023-10-29 23:08:52 26 4
gpt4 key购买 nike

我正在编写一个采用 OpenCV Mat 结构并进行一些处理的函数。问题是 OpenCV 似乎没有一种独立于类型的方式来访问结构,所以我必须做这样的事情。

int myfunc(cv::Mat& im, int iRow, int iCol)
{
int iResult = 0;
if (im.type()==CV_16U) iResult = (int)im.at<unsighed short>(iRow, icol);
else if (im.type()==CV_8U) iResult = (int)im.at<uchar>(iRow, icol);

return iResult;
}

有没有一种干净的方法来做到这一点?

最佳答案

这是因为您通常对图像处理的性能要求很高,因此需要针对 8bit、16bit 或双图像类型使用不同的算法。

您可以使用模板化类型来完成这一切,但这通常只是一种可读性较差的 switch 语句方式。

ps 如果你确实关心性能你不应该使用 .at<> 运算符,使用 .ptr() 获取指向行开头的指针,然后以你拥有的任何像素类型为单位进行步进

关于c++ - OpenCV 类型独立图像访问的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7826354/

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