gpt4 book ai didi

C 编程和 OpenCV(如何从文件中读取图像并将其加载以在 openCv 中进行进一步处理)

转载 作者:行者123 更新时间:2023-11-30 15:22:30 25 4
gpt4 key购买 nike

我用 C 创建了一个文件,其中包含图像的文件名。代码如下(“Leaves”是图像数据集。我将图像名称存储在文件中):

FILE *fp;

system("dir /B D:\\opencvprojects\\platphenotypeFinal\\platphenotypeFinal\\Leaves > file.txt");

file.txt 看起来像这样:

1001.jpg

1002.jpg

1003.jpg

1004.jpg

1005.jpg

1006.jpg

1007.jpg

现在我想从文件中读取每个图像,在 openCV 中进行背景减法,并将所有这些图像的结果保存在另一个文件中。

OriginalImage=cvLoadImage("Leaves\\1007.jpg",CV_LOAD_IMAGE_GRAYSCALE);

我知道如何读取单个图像(使用上面的代码),但我想自动读取文件的每个图像,进行处理,并将结果保存在另一个文件中,并且该过程继续循环,直到所有图像均已处理完毕。因此,将生成一个输出文件,其中包含二进制图像的文件名(与输入文件名相同)。

我们将非常感谢您的帮助。

int main()
{
CvMoments moments;

CvMemStorage *connectedCompStorage = cvCreateMemStorage (0);

CvSeq *temp = NULL; //used to loop through contour perimeter checking
CvSeq *connectedComp = NULL;

FILE *fp;
char buffer[9];

system("dir /B D:\\opencvprojects\\platphenotypeFinal\\platphenotypeFinal\\Leaves > file.txt");
fp = fopen ("file.txt", "r+");

OriginalImage = cvLoadImage("Leaves\\1108.jpg",CV_LOAD_IMAGE_GRAYSCALE);
}

最佳答案

opencv 有一个很好的 glob 函数来读取整个目录:

(请不要不要使用 opencv 的 C-api!)

vector<String> files;
glob("D:\\opencvprojects\\platphenotypeFinal\\platphenotypeFinal\\Leaves\*.jpg", files);

for (size_t i=0; i<files.size(); i++)
{
Mat m = imread(files[i]);
// process image
}

关于C 编程和 OpenCV(如何从文件中读取图像并将其加载以在 openCv 中进行进一步处理),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29200847/

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