gpt4 book ai didi

c# - 我有一个 8bpp 1024 X 1024 大小的 PGM 格式图像,需要从中计算 GLCM(灰度共生矩阵)

转载 作者:太空宇宙 更新时间:2023-11-03 21:59:49 58 4
gpt4 key购买 nike

图片很大,我用getPixelsetPixel 方法访问位,但发现它太慢了,所以我去实现 lock 和解锁位但无法理解它。我还浏览了 Bob Powell 的教程,但教程却无法理解。因此,我在这里寻求一些帮助以从图像中获取 GLCM。

最佳答案

GLCM 通常是一种计算量非常大的算法。它针对每个邻居遍历每个像素。即使是 C++ 图像处理库也有这个问题。

然而,GLCM 确实非常适合并行(多线程)实现,因为每个引用像素的计算都是独立的。

关于使用锁定和解锁位,请参阅下面的示例代码。要记住的一件事是可以出于优化原因填充图像。此外,如果您的图像具有不同的位深度或多个 channel ,您将需要相应地调整代码。

BitmapData data = image.LockBits(new Rectangle(0, 0, width, height), 
ImageLockMode.ReadOnly, PixelFormat.Gray8);

byte* dataPtr = (byte*)data.Scan0;

int rowPadding = data.Stride - (image.Width);

// iterate over height (rows)
for (int i = 0; i < height; i++)
{
// iterate over width (columns)
for (int j = 0; j < width; j++)
{
// pixel value
int value = dataPtr[0];

// advance to next pixel
dataPtr++;

// at the end of each column, skip extra padding
if (rowPadding > 0)
{
dataPtr += rowPadding;
}
}

image.UnlockBits(data1);

关于c# - 我有一个 8bpp 1024 X 1024 大小的 PGM 格式图像,需要从中计算 GLCM(灰度共生矩阵),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10674344/

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