gpt4 book ai didi

c - 使用双比例的 OpenCV 调整图像大小

转载 作者:太空宇宙 更新时间:2023-11-03 21:25:46 24 4
gpt4 key购买 nike

我有以下问题。我以这种方式使用 OpenCV 1 调整图像大小:

cvResize(img1, img2); 

哪里:

img2= cvCreateImage( cvSize(img1->width * ratioScale + 0.5, img1->height * ratioScale + 0.5), IPL_DEPTH_8U, 1 );

然后,我想用 255 填充半个图像(只是为了测试):

for (int j = 0; j < img2->height; j++){ 
for (int i = 0; i < img2->width/2; i++){
img2->imageData[j*img2->width + i] = 255;
}
}

ratioScale 的精度为小数点后一位(例如 1.5)时,它可以正常工作。否则(例如 1.59),它会给出几个白色对角线而不是图像的一半。我不懂为什么。所有图像都是灰度的。


我必须使用 OpenCV 1,因为这是公司的义务。

最佳答案

旧的 OpenCV 版本通常不会在内存中连续布置数据,而是在每一行的末尾使用一些填充。行加上填充的长度由 widthStep 给出。如果您使用 width,则不会考虑(实际的)填充,因此您会得到这种对角化效果。

所以你需要做:

img2->imageData[j*img2->widthStep + i] = 255;

<子>您真的应该避免使用 OpenCV 1,因为它已经有 10 年历史了,而且已过时

关于c - 使用双比例的 OpenCV 调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40886415/

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