c++ - 我无法遍历所有图像的像素,它正在遍历其中的一部分。开放式CV
问题描述
我有以下代码:
void white(Mat&src,Mat&dst){
double h = src.cols;
double w = src.rows;
dst = src.clone();
for (int i = 0; i < dst.rows; i++) {
for (int j = 0; j < dst.cols; j++) {
dst.at<uchar>(i, j) = 255;
}
}
}
我的预期结果是得到一个完全白色的图像,但是,我得到了这个结果:
输入图像:
输出图像:
解决方案
是彩色图像。每个像素由 3 个值组成。您必须设置每个颜色通道
void white(Mat&src,Mat&dst){
double h = src.cols;
double w = src.rows;
dst = src.clone();
for (int i = 0; i < dst.rows; i++) {
for (int j = 0; j < dst.cols; j++) {
for (std::size_t c = 0; c < 3; ++c) {
dst.at<Vec3b>(i, j)[c] = 255;
}
}
}
}
推荐阅读
- javascript - 如何将包含嵌入对象的字符串转换为对象类型?
- c++ - std::bind 与成员函数和 c++ 中的 this
- javascript - JQUERY 自动完成不显示从 php 脚本返回的结果
- python - AWS MSK,在配置中 auto.create.topics.enable=true 但不起作用
- vb.net - 接口新手尝试使用VB.NET接口和类创建Plugin系统
- java - Java - 不考虑实例给定值的方法
- c++ - 编译器说关于重新定义错误,但是只在头文件和 C++ 文件中提到的函数
- arduino - 两个超声波传感器可以共享触发电缆吗
- python - 为什么我的聊天过滤器会阻止单词列表顶部的单词?(discord.py)
- reactjs - 反应路由语法