⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_38662.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:38662 发表者:3 发表日期:2003-05-05 10:57:46
<br>主题:图像缩放的几点问题。。
<br>内容:我是大四的学生,毕业设计是用VC实现数字图像的缩放。。由于在学校里接触这个太少所以现在遇到了很大的困难。。现在我找到了一个实现缩放的算法。但是却不能用VC实现。。哪位大虾能帮下小弟。。感激不尽。。。以下是算法<BR><BR>双线性内插值:<BR>  对于一个目的像素,设置坐标通过反向变换得到的浮点坐标为(i+u,j+v),其中i、j均为非负整数,u、v为[0,1)区间的浮点数,则这个像素得值 f(i+u,j+v) 可由原图像中坐标为 (i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所对应的周围四个像素的值决定,即:<BR><BR>    f(i+u,j+v) = (1-u)(1-v)f(i,j) + (1-u)vf(i,j+1) + u(1-v)f(i+1,j) + uvf(i+1,j+1)<BR><BR>其中f(i,j)表示源图像(i,j)处的的像素值,以此类推
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:fenghan 回复日期:2003-05-07 15:44:10
<br>内容:void CShowBMPView::CoordinateVaryImg(unsigned char * Img,unsigned char * DestImg,double * Mask)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;double * ChMask;<BR>&nbsp;&nbsp;&nbsp;&nbsp;int x,y,u,v,m;<BR>&nbsp;&nbsp;&nbsp;&nbsp;x=y=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;double Output[3]={0,0,1}; <BR>&nbsp;&nbsp;&nbsp;&nbsp;ChMask=Mask;<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(v=0;v&lt;ImgH;v++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(u=0;u&lt;ImgW;u++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Output[0]=Output[1]=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(m=0;m&lt;3;m++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Output[m]=(u*ChMask[m]+v*ChMask[m+3]+ChMask[m+6]);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x=(int)Output[0];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;y=(int)Output[1];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((x+y*ImgW)&lt;(ImgW*ImgH))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// DestImg[x+y*ImgW]=Img[u+v*ImgW];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DestImg[u+v*ImgW]=Img[x+y*ImgW];//向后映射,由目标推向源图<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}//of u,v<BR>&nbsp;&nbsp;&nbsp;&nbsp;ShowImg(DestImg);//<BR>}//CoordinateVaryImg<BR>以上是向后映射的图象缩放算法,其中mask 是个三三矩阵(可以用一维数组表示)。坐标经过和此矩阵相乘后,变得到变换。详细你可以查一下图象处理方面的资料。就双线性插值而言,也应该可以实现,你可以编程试试,如果有问题,再讨论。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:3 回复日期:2003-05-09 15:41:05
<br>内容:这位同志 mash 是实现 反向变换的么?? 你说的双线性插值也可以实现的是哪部分? 是 mash 还是 这个向后映射算法??<BR> 还有 , 我老师说映射算法过于简单所以不让我用。。。 不好意思 一下 说了这么多问题~~
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -