• <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( 高興就寫(xiě)點(diǎn):-),不高興就不寫(xiě) )

            圖像的自動(dòng)剪切 (Auto crop)

                  圖像在處理過(guò)程中,有時(shí)需要去除一些無(wú)用的背景,限制處理范圍,以提高圖像下一步處理的速度。
                 下面這個(gè)函數(shù)主要實(shí)現(xiàn)了對(duì)二值化后的8位DIB查找范圍的功能。其中參數(shù)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) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            一级a性色生活片久久无少妇一级婬片免费放| 久久婷婷五月综合色高清 | 日日狠狠久久偷偷色综合0| 中文国产成人精品久久不卡| 激情伊人五月天久久综合| 夜夜亚洲天天久久| 久久亚洲日韩看片无码| 久久久久久a亚洲欧洲aⅴ| 久久久久亚洲av成人网人人软件| 国产精品久久久亚洲| 亚洲美日韩Av中文字幕无码久久久妻妇| 国产偷久久久精品专区| 久久无码精品一区二区三区| 狠狠狠色丁香婷婷综合久久俺| 久久笫一福利免费导航| 国产福利电影一区二区三区久久久久成人精品综合 | 精品久久久久香蕉网| 老男人久久青草av高清| 久久精品一区二区三区中文字幕 | 久久九九久精品国产免费直播| 亚洲国产精品无码久久久秋霞2| 久久中文字幕无码专区| 国产成人精品久久| 国产99精品久久| 无码精品久久久久久人妻中字| 欧美色综合久久久久久| 久久久久久毛片免费看| 一本大道加勒比久久综合| 日本福利片国产午夜久久| 国产午夜福利精品久久2021| 一本一本久久aa综合精品| 伊人久久大香线蕉AV一区二区 | jizzjizz国产精品久久| 麻豆AV一区二区三区久久| 久久这里只有精品18| 久久99精品久久久久婷婷| 亚洲欧美日韩中文久久| 日韩人妻无码一区二区三区久久 | 熟妇人妻久久中文字幕| 日韩精品无码久久久久久| 亚洲欧美日韩久久精品第一区|