• <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)  編輯 收藏 引用

            国产精品嫩草影院久久| 久久综合亚洲色HEZYO国产| 中文字幕日本人妻久久久免费| 精品国产99久久久久久麻豆 | 久久99热狠狠色精品一区| 中文字幕亚洲综合久久2| 合区精品久久久中文字幕一区| 性欧美丰满熟妇XXXX性久久久| 国产精品久久久久AV福利动漫| 性高朝久久久久久久久久| 久久精品国产清高在天天线| 久久久久亚洲爆乳少妇无| 久久精品国产清高在天天线| 人妻少妇精品久久| 情人伊人久久综合亚洲| 久久国产色av免费看| 999久久久国产精品| 日本人妻丰满熟妇久久久久久| 久久综合久久综合久久| 久久精品国产亚洲AV蜜臀色欲| 久久精品国产黑森林| 成人久久久观看免费毛片| 精品久久久久久国产| 欧美亚洲国产精品久久| 国产女人aaa级久久久级| 久久99国产精品二区不卡| 亚洲色婷婷综合久久| 久久综合鬼色88久久精品综合自在自线噜噜 | 国产精品激情综合久久| 久久久噜噜噜久久熟女AA片| 久久综合鬼色88久久精品综合自在自线噜噜| 国产成人精品久久一区二区三区| 国内精品伊人久久久久777| 亚洲精品高清一二区久久| 看全色黄大色大片免费久久久| 很黄很污的网站久久mimi色| 久久综合狠狠色综合伊人| segui久久国产精品| 国内精品伊人久久久久网站| 久久久久久久国产免费看| 亚洲国产成人精品女人久久久 |