打开CV:访问灰度图像的像素
Open CV: Acces pixels of grayscale image
我知道这个问题可以连线给专家,但我想在 openCV 中访问灰度图像的像素。我正在使用以下代码:
cv::Mat img1 = cv::imread("bauckhage.jpg", CV_LOAD_IMAGE_GRAYSCALE);
现在,如果我想使用 img1.at<float>(255,255)
打印任何像素(例如在位置 255,255),我会得到0
,这实际上不是黑色像素。我以为该图像已被读取为2d矩阵。
实际上,我想对每个像素进行一些计算,为此我需要显式访问每个像素。
任何帮助或建议将不胜感激。
你必须这样做
int x = (int)(img.at<uchar>(j,i))
这是因为图像的存储方式和img.at
的工作方式。灰度图像以CV_8UC1格式存储,因此它基本上是uchar
类型的数组。因此,返回值是一个uchar
,您将其类型转换为int
以将其作为整数进行操作。
此外,这类似于您的问题:访问OpenCV中灰度图像的像素值
浮点数在这里是错误的类型。
如果您阅读这样的图像:
cv::Mat img1 = cv::imread("bauckhage.jpg", CV_LOAD_IMAGE_GRAYSCALE);
然后它的类型将是CV_8U(UCar,每像素一个灰度字节)。 因此,要访问它:
uchar &pixel = img1.at<uchar>(row,col);
相关文章:
- OpenCV - 如何在灰度图像上应用 Kmeans?
- C++灰度图像处理
- 如何显示具有 opengl 纹理的灰度图像
- (C++)(Visual Studio) 将高斯模糊滤镜应用于 RGB 中的灰度图像
- 使用 SSE 以最快的速度缩小 8 位灰度图像
- 使用 OpenCV 和 C++将 16 位灰度图像更改为彩色图像
- 有没有办法使用 glDrawPixel 渲染单通道灰度图像?
- 如何在OpenCV中减去两个不同尺寸的图像和灰度图像
- 使用 ImageMagick 从像素强度数组创建灰度图像时遇到问题
- 将高斯模糊应用于灰度图像
- 在OpenCV中将灰度图像转换为单色
- Mat的convertTo函数在OpenCV中将灰度图像的类型转换为CV_32F时抱怨断言错误
- 使用 FreeImage 加载 RAW 灰度图像
- 使用条款 使用Opencv和Qt减去两个灰度图像
- OpenCV使用像素指针构建图像
- 在 openCV 中访问某些像素的强度值(灰度图像)
- 打开CV:访问灰度图像的像素
- 访问OpenCV中灰度图像的像素值
- 无法从灰度图像访问像素值
- 在opencv中获取灰度图像的最大像素值