我怎么能得到像素的颜色在我的图像(加载灰色)
How can I get the color of pixels in my image (load grey)?
我使用此代码打印OpenCV Mat像素的强度。但是,我在控制台上打印字符,而不是0到250之间的值:
image1 = imread(nameJpg, 0);
image2 = imread(lastJpg, 0);
for (int j = 0; j < image1.rows-10; j += 1){
for (int i = 0; i < image1.cols-10; i += 1) {
std::cout << "" << image1.at<uchar>(i, j) << " " <<i mage1.at<uchar>(i, j)<<"n";
}
}
我该如何解决这个问题?
您希望将其强制转换为整型,例如:
(int)image.at<uchar>(i, j)
您可以通过引用ASCII表来测试。
编辑
你提到的bug的来源是你如何访问像素。I应该代表行,j代表列。
for (int i = 0; i < src.rows; i++) {
for (int j = 0; j < src.cols; j++)
cout << (int)src.at<uchar>(i, j) << " ";
cout << endl;
}
在灰度图像中,像素强度在0到255之间,而不是250。
如果你想要获取某个像素的值,你可以使用:
auto image=cv::imread(path,CV_LOAD_IMAGE_GRAYSCALE);
auto pixel_value=image.at<uchar>(row_idx,col_idx);
OP编辑后:
如果您想在打印时获得数字而不是字符,请使用以下命令:
auto pixel_value= static_cast<unsigned int>(image.at<uchar>(row_idx,col_idx));
相关文章:
- 这是我的程序,C++使用 OpenCv 库从数据集中读取图像序列,但它没有运行
- Java opencv inRange 阈值函数将我的图像分成三个不同的图像
- 如何使用我的C程序将PDF转换为图像格式(jpeg,png,..)
- 为什么我的 iFFT 图像带有镜像副本
- 只需修改图像的开始,而不是按照我的意愿进行修改
- 当我添加OpenGL转换时,我的图像不断消失
- 将我的阵列移动到 Mat 并使用打开的 CV 显示图像
- 如何使用 OPENCV 显示我的代码中的图像
- 将图像集成到我的可执行文件中
- 如何使阈值窗口仅适用于我的一半图像
- 为什么我的libharu pdf过大,带有.png图像
- 为什么我的 OpenCL 3D 图像查找不起作用?
- Linux 不会为我的游戏加载我的图像
- 我需要使用opencvsharp识别图像中的文本
- 为什么我的图像无法渲染?
- 为什么我必须将原始图像数据的宽度除以3
- 为什么cvCopy不会复制我的整个图像数据?
- OpenCV cvtColor() 更改了我的图像尺寸并具有错误的颜色
- 我的加载图像不起作用 - 我需要知道为什么
- 我正在尝试将灰度转换为更大的黑色图像.我得到这个错误OpenCV错误:断言失败