• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Make Oneself More Strong

            mcs51a( 高興就寫點:-),不高興就不寫 )

            圖像的自動剪切 (Auto crop)

                  圖像在處理過程中,有時需要去除一些無用的背景,限制處理范圍,以提高圖像下一步處理的速度。
                 下面這個函數主要實現了對二值化后的8位DIB查找范圍的功能。其中參數c為背景的顏色.

              1void FindBlankBound(LPBYTE src,  RECT & bound,INT c,INT limit)
              2{
              3    int w = DIBWidth(src);
              4    int h = DIBHeight(src);
              5    int bitCount=DIBBitCount(src);
              6    int rowstride = DIBCalBytesPerRow(w,bitCount);
              7    int startY = 0, endY = 0;
              8    int startX = 0, endX = 0;
              9    int fillColor= 255-c;
             10    
             11    BYTE* srcData0 = (BYTE*)DIBGetPixelPtr(src,0,0);
             12    BYTE * srcData = srcData0;
             13    
             14    int i, j;
             15    LONG x0,y0,x1,y1;
             16    x0=bound.left;
             17    y0=bound.top;
             18    x1=bound.right;
             19    y1=bound.bottom;
             20    
             21    CLAMP(x0,0,w);
             22    CLAMP(x1,0,w);
             23    CLAMP(y0,0,h);
             24    CLAMP(y1,0,h);
             25
             26    BOOL bFind=FALSE;
             27
             28    for (i = x0; i < x1; ++i)
             29    {
             30        startY = y0;
             31        endY = y0;
             32
             33        for (j = y0; j < y1; ++j)
             34        {
             35            srcData = srcData0 + j * rowstride;    
             36            endY = j;
             37            if(srcData[i]==c) ///FIND COLOR 
             38            ///if (IsBlock(srcData0,w,h,i,j,c))

             39                break;
             40        }

             41        
             42        x0 = i; ///
             43        if (abs((endY - startY) - (y1 - y0)) > limit)
             44            break;
             45        
             46        bFind=TRUE;
             47        for (j = 0; j < h; ++j)
             48        {
             49            *( srcData0 + j * rowstride + i) = fillColor;
             50        }

             51        
             52    }

             53    
             54    
             55    
             56    for (i = (x1 - 1); i >= x0; --i)
             57    {
             58        startY = y0;
             59        endY = y0;
             60        for (j = y0; j < y1; ++j)
             61        {
             62            srcData = srcData0 + j * rowstride;
             63            endY = j;
             64            
             65            if(srcData[i]==c)
             66            ///if (IsBlock(srcData0,w,h,i,j,c))
             67                    break;
             68            
             69        }

             70        
             71        x1 = i + 1;
             72        if (abs((endY - startY) - (y1 - y0)) > limit)
             73            break;
             74        
             75        for (j = 0; j < h; ++j)
             76        {
             77          *( srcData0 + j * rowstride + i) = fillColor;
             78        }

             79        
             80    }

             81    
             82    if ((x1-x0) <= 1)
             83    {
             84        y0 = y1;
             85    }

             86    
             87    for (j = y0; j < y1; ++j)
             88    {
             89        
             90        startX = x0;
             91        endX = x0;
             92        srcData = srcData0 + j * rowstride;
             93        
             94        for (i = x0; i < x1; ++i)
             95        {
             96            endX = i;
             97            if(srcData[i]==c)
             98            ///if (IsBlock(srcData0,w,h,i,j,c))
             99                break;
            100        }

            101        
            102        y0 = j;
            103        if (abs(endX - startX - (x1 - x0)) > limit)
            104            break;
            105        
            106        for (i = 0; i < w; ++i)
            107        {
            108            srcData[i] = fillColor;
            109        }

            110    }

            111    
            112    for (j = (y1 - 1); j >= y0; --j)
            113    {
            114        
            115        startX = x0;
            116        endX = x0;
            117        srcData = srcData0 + j * rowstride;
            118        for (i = x0; i < x1; ++i)
            119        {
            120            endX = i;
            121            if(srcData[i]==c)
            122            ///if (IsBlock(srcData0,w,h,i,j,c))
            123                break;
            124            
            125        }

            126        
            127        
            128        y1 = j+1;
            129        if (abs(endX - startX - (x1 - x0)) > limit)
            130            break;
            131        
            132        for (i = 0; i < w; ++i)
            133        {
            134            srcData[i] = fillColor;
            135        }

            136    }

            137
            138    bound.left=x0;
            139    bound.top=y0;
            140    bound.right=x1;
            141    bound.bottom=y1;
            142    
            143}


             

            posted on 2010-02-07 08:36 mcs51a 閱讀(445) 評論(0)  編輯 收藏 引用

            99久久国产精品免费一区二区| 伊人久久大香线蕉精品| 亚洲?V乱码久久精品蜜桃| 久久99亚洲综合精品首页| 久久久久亚洲AV无码专区网站 | 无码AV中文字幕久久专区| 久久久久亚洲AV无码麻豆| 日韩美女18网站久久精品| 久久国产精品99精品国产| 看全色黄大色大片免费久久久| 久久精品人人做人人爽电影| 91精品国产高清久久久久久91| 久久精品中文无码资源站| 777久久精品一区二区三区无码 | 久久久久精品国产亚洲AV无码| 青青草原综合久久大伊人精品| 婷婷久久久亚洲欧洲日产国码AV| 精品综合久久久久久88小说| 97久久香蕉国产线看观看| 亚洲国产精品无码久久久蜜芽| 久久本道久久综合伊人| 久久久精品免费国产四虎| 色欲久久久天天天综合网精品 | 久久人人爽人人爽人人片AV东京热 | 国产农村妇女毛片精品久久| 久久精品国产亚洲av麻豆小说| 精品伊人久久久| 久久亚洲视频| 久久影视国产亚洲| 久久精品国产一区二区三区 | 亚洲天堂久久久| 一日本道伊人久久综合影| 亚洲国产成人精品91久久久 | 亚洲中文精品久久久久久不卡| 久久只有这精品99| 中文成人无码精品久久久不卡 | 久久这里只有精品首页| 久久人人爽人人澡人人高潮AV | 久久夜色精品国产www| 久久久久一级精品亚洲国产成人综合AV区| 久久福利青草精品资源站免费|