gpt4 book ai didi

c++ - OpenCV:快速量化两幅图像之间的差异

转载 作者:行者123 更新时间:2023-11-28 07:17:11 29 4
gpt4 key购买 nike

我有两张图片,我想了解它们在逐个像素级别上的差异有多大。我的基本想法是拍摄两幅图像,应用 absdiff,然后求差中的每个像素,取其范数,并将范数存储在另一个数组中。这种方法的问题是它对我的应用程序来说太慢了。有谁知道有其他替代方法吗?

非常感谢,

希拉里

计算归一差的代码:

  uchar* row_pointer_image_difference;
double* row_pointer_normed_difference;
Vec3b bgrPixel;
double pixel_distance;

for (long int r = 0; r < rows; r++){
row_pointer_image_difference = image_difference.ptr<uchar>(r);
row_pointer_normed_difference = normed_difference.ptr<double>(r);
for (long int c = 0; c < columns; c++){
//calculate pixel distance
bgrPixel = row_pointer_image_difference[c];
pixel_distance = norm(bgrPixel);
row_pointer_normed_difference[c] = pixel_distance;
}
}

最佳答案

您需要更好地阐明您的用例,以便了解哪些快捷方式可用。问问自己:您将差额用于什么用途?你能接受大概的差异吗?是否只需要判断图像是否完全相等?

此外,您希望优化多少计算时间?最坏的情况下?平均的?您能忍受计算时间的巨大差异吗?

例如,如果您只对测试完全相等感兴趣,则在第一个差异处提前终止非常快,如果大多数图像彼此不同,则预期时间会很短。

如果预期重复项的比例很大,则随机像素采样可能是一种可行的方法,并且您可以根据采样率量化误报和漏报的可能性。

关于c++ - OpenCV:快速量化两幅图像之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20033995/

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