You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#自定义Bitmap类时图像放大的矩阵复制错误修复求助

修复图像放大的矩阵循环逻辑

你的代码当前是对单个矩阵元素进行coeff倍复制,导致每个B/G/R分量被重复,而不是完整的BGR像素组重复,最终出现颜色异常。要解决这个问题,需要**按像素组(3个连续元素为一组)**处理复制逻辑,同时保持行方向的coeff倍放大。

修复后的完整代码

int coeff = 2;
int index = 1;
int line = 3;
int column = 6;

int[,] m = new int[line, column];

// 初始化原矩阵
for (int i = 0; i < m.GetLength(0); i++)
{
    for (int j = 0; j < m.GetLength(1); j++)
    {
        m[i, j] = index;
        index++;
        Console.Write(m[i, j] + " ");
    }
    Console.WriteLine();
}

int[,] matrix = new int[m.GetLength(0) * coeff, m.GetLength(1) * coeff];

// 修复后的循环逻辑
for (int i = 0; i < m.GetLength(0); i++)
{
    // 行方向:将原行复制coeff次到新矩阵
    for (int k = i * coeff; k < i * coeff + coeff; k++)
    {
        // 按像素组遍历(每次步进3,对应一个BGR像素的3个分量)
        for (int j = 0; j < m.GetLength(1); j += 3)
        {
            // 列方向:将当前像素组重复coeff次
            for (int l = 0; l < coeff; l++)
            {
                // 完整复制当前像素组的3个元素
                matrix[k, j * coeff + l * 3] = m[i, j];
                matrix[k, j * coeff + l * 3 + 1] = m[i, j + 1];
                matrix[k, j * coeff + l * 3 + 2] = m[i, j + 2];
            }
        }
    }
}

// 输出验证修复结果
Console.WriteLine("\n修复后输出矩阵:");
for (int i = 0; i < matrix.GetLength(0); i++)
{
    for (int j = 0; j < matrix.GetLength(1); j++)
    {
        Console.Write($"{matrix[i, j],3}");
    }
    Console.WriteLine();
}

关键修改说明

  1. 行循环提前:先处理原矩阵的每一行,直接复制coeff行到新矩阵,保证行方向的放大逻辑正确
  2. 按像素组遍历:列方向循环改为j += 3,每次处理一个完整的BGR像素组,而非单个颜色分量
  3. 完整复制像素组:每个像素组在列方向重复coeff次时,同步复制B、G、R三个元素,确保像素整体被放大

效果对比

原矩阵:

1  2  3  4  5  6
7  8  9 10 11 12
13 14 15 16 17 18

修复后输出(与期望一致):

1  2  3  1  2  3  4  5  6  4  5  6
  1  2  3  1  2  3  4  5  6  4  5  6
  7  8  9  7  8  9 10 11 12 10 11 12
  7  8  9  7  8  9 10 11 12 10 11 12
 13 14 15 13 14 15 16 17 18 16 17 18
 13 14 15 13 14 15 16 17 18 16 17 18

内容的提问来源于stack exchange,提问作者Noshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 13:43:12