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

            色妞色综合久久夜夜| 国产69精品久久久久观看软件| 久久精品国产99久久久| 国产精品毛片久久久久久久| 精品免费久久久久国产一区 | 久久久久九国产精品| 2020国产成人久久精品| 精品少妇人妻av无码久久| 国产精品熟女福利久久AV| 大香伊人久久精品一区二区 | 精品久久一区二区| 精品国产VA久久久久久久冰| 久久精品国产亚洲综合色| 日产久久强奸免费的看| 成人免费网站久久久| 久久伊人五月天论坛| 狠色狠色狠狠色综合久久| 久久这里只有精品首页| 热久久国产欧美一区二区精品| 狠狠色婷婷久久一区二区三区| 久久婷婷是五月综合色狠狠| 国产午夜福利精品久久| 久久777国产线看观看精品| 久久影院综合精品| 中文字幕乱码人妻无码久久| 色婷婷狠狠久久综合五月| 国产精品美女久久久网AV| 日本福利片国产午夜久久| 国产午夜免费高清久久影院| 亚洲中文字幕无码一久久区| 亚洲人成无码www久久久| 久久激情亚洲精品无码?V| 国产精品亚洲综合专区片高清久久久| 国产精品久久久久9999| 国产午夜免费高清久久影院| 九九精品99久久久香蕉| 精品久久久久中文字幕日本 | 亚洲国产精品婷婷久久| 久久久久久久99精品免费观看| 久久精品这里热有精品| 国产 亚洲 欧美 另类 久久|