gpt4 book ai didi

javascript - 更改 OpenCV.js 中的像素值

转载 作者:行者123 更新时间:2023-12-01 01:02:20 26 4
gpt4 key购买 nike

根据OpenCV.js文档修改像素值可以使用 3 种方法:

  1. 直接数据操作
  2. at()方法族
  3. ptr()方法族

虽然文档中该部分的标题说“访问和修改像素值”,但它提供了检索值但没有修改它们的示例。问题是,在 C++ 中,此代码使用 atptr方法有效:

mat.at<type>(row, col) = value;

JavaScript 中的等效项无效,并给出 Invalid left hand side in assignment expression :

mat.floatAt(row, col)) = value;

我可以使用直接数据操作方法使其工作:

mat.data[row * this.cols * this.channels() + col * this.channels()] = value;

但此方法不在像素值中运行,而是在底层数组数据结构中运行,其中一个像素可能跨越多个数组索引,因此对我的用例无效。

如何使用 OpenCV.js 修改 CvMat 中 [row, col] 位置的像素值?

最佳答案

我已经成功使用 ucharPtr 设置图像(或矩阵)的单个像素。

不要这样设置:

img.ucharPtr(i, j) = 255

我这样设置:

img.ucharPtr(i, j)[0] = 255 

即使图像是黑白的并且只有一个 channel

如果您想设置全部 4 个像素值,可以这样做:

src.ucharPtr(i, j)[0] = 255
src.ucharPtr(i, j)[1] = 255
src.ucharPtr(i, j)[2] = 255
src.ucharPtr(i, j)[3] = 0

关于javascript - 更改 OpenCV.js 中的像素值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55950150/

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