真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

數(shù)字圖像縮放之雙三次插值

基本原理:雙三次插值是一種更加復(fù)雜的插值方式,它能創(chuàng)造出比雙線性插值更平滑的圖像邊緣??s放后圖像中某個(gè)象素的象素值是由源圖像相應(yīng)像素附近的(4 x 4)個(gè)鄰近象素值計(jì)算出來(lái)的,即通過(guò)一個(gè)基函數(shù)進(jìn)行擬合得到一個(gè)目的像素值,具體某點(diǎn)v(x,y) 的像素值是使用下式計(jì)算得到:

創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)菏澤,10年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18982081108

v(x,y) =∑∑aij*x^i*y^j;其中,0≤i,j≤3;16個(gè)系數(shù)aij由16個(gè)臨近像素寫出的未知方程確定。

C/C++實(shí)現(xiàn)如下:

void GeometryTrans::Zoom(float ratioX, float ratioY)
{
	
	//釋放舊的輸出圖像緩沖區(qū)
	if(m_pImgDataOut!=NULL){
		delete []m_pImgDataOut;
    	m_pImgDataOut=NULL;
	}
    
	//輸出圖像的寬和高
	m_imgWidthOut=int(m_imgWidth*ratioX+0.5) ;
	m_imgHeightOut=int(m_imgHeight*ratioY+0.5); 

	//輸入圖像每行像素字節(jié)數(shù)
	int lineByteIn=(m_imgWidth*m_nBitCount/8+3)/4*4;
	
	//輸出圖像每行像素字節(jié)數(shù)
    int	lineByteOut=(m_imgWidthOut*m_nBitCount/8+3)/4*4;

	//申請(qǐng)緩沖區(qū),存放輸出結(jié)果
	
	m_pImgDataOut=new unsigned char[lineByteOut*m_imgHeightOut];

	//每像素字節(jié)數(shù),輸入圖像與輸出圖像相同
	int pixelByte=m_nBitCount/8;
	

	//輸出圖像在輸入圖像中待插值的位置坐標(biāo)
	int coordinateX, coordinateY;
	
	//循環(huán)變量,輸出圖像的坐標(biāo)
	int i,j;
	
	//循環(huán)變量,像素的每個(gè)通道
	int k;
	//**************************************************************
	//對(duì)原圖像進(jìn)行拓展,上下分別拓展兩行,左右分別拓展兩列
	if(m_pImgData_temp!=NULL){
		delete []m_pImgData_temp;
    	m_pImgData_temp=NULL;
	}
	//拓展圖像每行像素字節(jié)數(shù)
	int lineByteIn1=((m_imgWidth+4)*m_nBitCount/8+3)/4*4;
	//申請(qǐng)緩沖區(qū),存放拓展后的圖像
	
	m_pImgData_temp=new unsigned char[lineByteIn1*(m_imgHeight+4)];

	for(k=0;k=0&&coordinateY<(m_imgHeight))
			{
			    for(k=0;k

基函數(shù)實(shí)現(xiàn)如下

loat GeometryTrans::Sinc(float x) /*Sinc(x)是對(duì) Sin(x*Pi)/x 的逼近(Pi是圓周率——π)*/
{
  if(abs(x)>=0&&abs(x)<1)
   return (1-2*abs(x)*abs(x)+abs(x)*abs(x)*abs(x));
  else
     if(abs(x)>=1&&abs(x)<2)
      return (4-8*abs(x)+5*abs(x)*abs(x)-abs(x)*abs(x)*abs(x));
     else  
       return 0;
}

矩陣內(nèi)積計(jì)算函數(shù)實(shí)現(xiàn)如下

float GeometryTrans::ABC(float a[],double b[],float c[]) /*矩陣運(yùn)算函數(shù),求得像素值,內(nèi)積*/
{
  int i,j;
  float abc=0;
  float tmp[4];
  for(i=0;i<4;i++)
    tmp[i]=0;
  for(i=0;i<4;i++)
     for(j=0;j<4;j++)
      tmp[i]+=a[j]*b[j*4+i];
  for(i=0;i<4;i++)
    abc+=tmp[i]*c[i];
  if (abc<0)
	  abc=0;
  if (abc>255)
	  abc=255;
  return abc;  
}

當(dāng)前名稱:數(shù)字圖像縮放之雙三次插值
網(wǎng)站地址:http://weahome.cn/article/jdpscc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部