gpt4 book ai didi

ios - OpenCV - 无法访问 Mat 中的所有像素

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

我正在尝试手动更改 Mat 中的每个像素。
为简单起见,假设我想将每个像素着色为黑色。我正在使用以下方法:

for (int i = 0; i < imageToWorkWith.rows; i++) {
for (int j = 0; j < imageToWorkWith.cols; j++) {
imageToWorkWith.at<cv::Vec3b>(i,j) = cv::Vec3b(0,0,0);
}
}

从逻辑上讲,这似乎应该遍历垫子中的每个像素,因为它读取行/列的所有可能组合。
不幸的是,这不起作用。对于每张图片,我都缺少一个“ block ”列。例如,在加载此图像时:
enter image description here
结果是这样的:
enter image description here
无论我使用什么图像,我缺少的这个“ block ”大小都是一样的。我似乎无法理解其中的原因。我知道“at”函数的行/列的顺序是(行,列),但我尝试切换它们只是为了踢球,结果当然更糟。

我在这里想念什么?循环遍历所有行/列还不够吗?

最佳答案

只需使用 Vec4b 而不是 Vec3b,因为默认情况下图像在 ios 中有 4 个 channel 。结果将是全白的。

for (int i = 0; i < imageToWorkWith.rows; i++) {
for (int j = 0; j < imageToWorkWith.cols; j++) {
imageToWorkWith.at<cv::Vec4b>(i,j) = cv::Vec4b(0,0,0);
}
}

关于ios - OpenCV - 无法访问 Mat 中的所有像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18064072/

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