• <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 閱讀(440) 評論(0)  編輯 收藏 引用

            久久精品国产99久久久| 国产亚洲精品自在久久| 久久www免费人成精品香蕉| 久久丝袜精品中文字幕| 亚洲精品tv久久久久久久久| 精品久久久久久久久中文字幕| 女同久久| 国产午夜久久影院| 久久毛片一区二区| 国产成人久久777777| 久久久久亚洲AV成人网人人网站 | 婷婷综合久久中文字幕蜜桃三电影 | 日本高清无卡码一区二区久久| 午夜精品久久久久久影视riav| 久久99精品久久只有精品| 污污内射久久一区二区欧美日韩 | 色偷偷88欧美精品久久久| 国产日产久久高清欧美一区| 中文精品久久久久人妻| 久久国产成人亚洲精品影院| 97久久精品午夜一区二区| 久久精品视频一| 亚洲精品国产综合久久一线| 99久久亚洲综合精品成人| 2020久久精品国产免费| 亚洲欧美日韩中文久久 | 国产免费久久精品99久久| 久久91综合国产91久久精品| 久久天天躁狠狠躁夜夜躁2014| 日本久久中文字幕| 欧洲性大片xxxxx久久久| 亚洲欧洲久久久精品| 一本色道久久综合狠狠躁篇| 亚洲国产成人精品久久久国产成人一区二区三区综| 久久久久成人精品无码中文字幕| 香港aa三级久久三级老师2021国产三级精品三级在 | 99久久精品国产免看国产一区| 精品国产青草久久久久福利| 亚洲一区中文字幕久久| 久久―日本道色综合久久| 精品久久久久久无码中文字幕 |