ysleee 2019-11-08 14:24
浏览 258

关于宏块提取的问题()

最近在做一个摄像头识别马赛克的东西,遇到点问题,需要大神们给帮帮忙。

1、每个宏块的二阶梯度提取:

部分代码如下:

bool is_mosaic(const IplImage* pImage, int& mosaic_temp)
{
    if (pImage == NULL)
        return false;
    int width = pImage->width;
    int height = pImage->height;
    int w16 = width / 16;
    int h16 = height / 16;
    struct macroblock* mb = new macroblock[w16 * h16];
    memset(mb, 0, sizeof(macroblock) * w16 * h16);
    for (int i = 0; i < h16; i++)
    {
        for (int j = 0; j < h16; j++)
        {
            int top = j ? (i * 16 - 1) : 0;
            int left = j ? (j * 16 - 1) : 0;
            int ddy = 0;
            for (int k = 0; i > 0 && k < 16; k++)
            {
                int y[4];
                y[0] = cvGetReal2D(pImage, top - 1, left + k);
                y[1] = cvGetReal2D(pImage, top - 1, left + k);
                y[2] = cvGetReal2D(pImage, top - 1, left + k);
                y[3] = cvGetReal2D(pImage, top - 1, left + k);
                int dy[3];
                dy[0] = abs(y[1] - y[0]);
                dy[1] = abs(y[2] - y[1]);
                dy[2] = abs(y[3] - y[2]);
                int temp = min(dy[1] - dy[0], dy[1] - dy[2]);
                ddy += temp;
            }
            ddy = (ddy / 16);
            mb[i * w16 + j].val[TOP] = ddy;
            if (i > 0) {
                mb[(i - 1) * w16 + j].val[BOTTOM] = ddy;
            }

其中 mb[(i - 1) * w16 + j].val[TOP] = ddy(宏块的上边梯度)一直无法运行正确,啥原因?
或是大家有好方法建议。

谢谢!

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
    • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
    • ¥15 MATLAB中streamslice问题
    • ¥15 如何在炒股软件中,爬到我想看的日k线
    • ¥15 51单片机中C语言怎么做到下面类似的功能的函数(相关搜索:c语言)
    • ¥15 seatunnel 怎么配置Elasticsearch
    • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
    • ¥15 (标签-MATLAB|关键词-多址)
    • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
    • ¥500 52810做蓝牙接受端