数字识别ImageProcess - TMS320C6748 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3043|回复: 1
打印 上一主题 下一主题

[未解决] 数字识别ImageProcess

[复制链接]

1

主题

1

帖子

19

积分

新手上路

Rank: 1

积分
19
跳转到指定楼层
楼主
发表于 2017-5-26 14:28:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
不明白下面这段程序,哪位高抬贵手指点一二。大概的过程或者原理,都可以。跪谢。
//图像分割 (源图像, 区域数, 各个区域的起始结束坐标)    逐行像素扫描
void IMG_segmentation(const unsigned char *SourceImage, char *AreaNum, unsigned int *Coord)
{
        unsigned int x, y, i, j;
        unsigned char gray = 0, oldgray = 0;
        char line = 0;
        unsigned int updown[100];
        char num = 0;

        x = (SourceImage[2] << 8) + SourceImage[1]; //一行的像素数
        y = (SourceImage[4] << 8) + SourceImage[3]; //一列的像素数

        for(i=5; i<y-6; i++)
        {
                for(j=5; j<x-6; j++)
                {
                        GetPixelValue(SourceImage, j, i, &gray);
                        if(gray == 0)
                                break;
                }

                if((oldgray == 0xff) && (gray == 0))
                {
                        updown[line] = i; //y坐标 上端
                        line++;
                }

                if((oldgray == 0) && (gray == 0xff))
                {
                        updown[line] = i; //y坐标 下端
                        line++;
                }
                oldgray = gray;
        }

        for(; line>=0; line=line-2)
        {
                for(i=5; i<x-6; i++)
                {
                        for(j=updown[line-2]; j<updown[line-1]; j++)
                        {
                                GetPixelValue(SourceImage, i, j, &gray);    //总在这个位置跑死,谁能帮帮我
                                if(gray == 0)
                                        break;
                        }

                        if((oldgray == 0xff) && (gray == 0))
                        {
                                Coord[num*4] = i; //区域的起始x坐标
                                Coord[num*4+1] = updown[line-2]; //区域的起始y坐标
                        }

                        if((oldgray == 0) && (gray == 0xff))
                        {
                                Coord[num*4+2] = i; //区域的结束x坐标
                                Coord[num*4+3] = updown[line-1]; //区域的结束y坐标
                                num++;
                        }
                        oldgray = gray;
                }
        }

        *AreaNum = num;
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

0

主题

184

帖子

1137

积分

QQ游客

积分
1137
沙发
发表于 2017-5-27 12:07:19 | 只看该作者


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-5-10 11:12 , Processed in 0.035411 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表