图像双三次插值中遇到的问题(镶边、错误点)
测试图像:

src3.bmp 0 2 tar
src3.bmp 37.5 2 tar:会出现小点(其值为205)


分析原因是该处点未赋值!
可以发现若缩小循环后,所有未赋值的点都会是205。
 
具体分析是if语句条件没判别全,导致有点没被覆盖上赋值。if=255没考虑。
if(middle<255) pbTag[y*2*iWidth+x]=middle; else if(middle>255) pbTag[y*2*iWidth+x]=255;
应改为:
if(middle<=255) pbTag[y*2*iWidth+x]=middle; else if(middle>255) pbTag[y*2*iWidth+x]=255;
 // if(middle>255)
	//				pbTag[y*2*iWidth+x]=255;
	//			else
	//				pbTag[y*2*iWidth+x]=middle;		

会发现并不是全白的!隐约会看到灰色块!其值为254!

 

对于镶边的问题也是插值后值的问题:
某些值为负值!
应加入判断:
if(middle<=255&&middle>=0) pbTag[y*2*iWidth+x]=middle; else if(middle>255) pbTag[y*2*iWidth+x]=255; else pbTag[y*2*iWidth+x]=0;

还是能看到平坦区域的254和255差别。
    ζั͡ޓއ genji - 至此只为原地流浪.......
 
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号