gpt4 book ai didi

c - 在C语言的灰度图像中使用cvSet2D?

转载 作者:太空宇宙 更新时间:2023-11-03 22:55:20 28 4
gpt4 key购买 nike

我想使用 CvSet2D 在给定的 bmp 图像中设置像素值,但我只想访问第一个值。你能解释一下 CvSet2D 的 4 个参数是做什么用的吗?

例如:

#include <stdio.h>
#include <cv.h>
#include <highgui.h>
#include <math.h>

int main(int argc, char *argv[])
{
IplImage* img = cvLoadImage("initial.bmp",1);

int f = 123;
cvSet2D(img, 1, 2, f); // here is the error
//cvSet2D(img, 1, 2, cvScalar(f)); // error also this way

return 0;
}

我收到一条错误消息:

incompatible type for argument 4 of 'cvSet2D'   

我只需要设置灰度图像的像素值,我该怎么做?

最佳答案

可以引用this问题。

C: void cvSet2D(CvArr* arr, int idx0, int idx1, CvScalar value)

参数是:

  • arr - 输入数组(即图像)
  • idx0 – 元素索引的第一个从零开始的组件(即行)
  • idx1 – 元素索引的第二个从零开始的组件(即列)
  • value – 分配的值

要了解什么是 cvScalar,请参阅 this

The cvScalar is simply a convenient container for 1, 2, 3 or 4 floating point values.

你应该这样做:

uchar f = 123;
CvScalar scalar = cvGet2D(img, 1, 2);
scalar.val[0] = f;
cvSet2D(img, 1, 2, scalar);

关于c - 在C语言的灰度图像中使用cvSet2D?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31699693/

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