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

📄 subject_39978.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:39978 发表者:uswrs 发表日期:2003-05-15 00:05:31
<br>主题:请教有关VC彩色图像处理
<br>内容:我一直搞黑白图像处理,想知道怎样处理彩色图像。我的程序可以<BR>读彩色图像,但不知怎样可以处理它。在哪里可以添加对红,绿,兰<BR><BR>色的处理。<BR><BR>非常感谢高手的指点。
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:fenghan 回复日期:2003-05-16 12:22:27
<br>内容:如果你处理的是8位灰度图,那么24位真彩色位图只是其扩充。原来的每个象素一个值(0——255),现在是每个象素三个(0——255)的值。然后在卷积时注意这一点就好了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:uswrs 回复日期:2003-05-18 01:51:57
<br>内容:能不能给我一个简单彩色处理的&nbsp;&nbsp; VC 源码
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:fenghan 回复日期:2003-05-18 10:52:14
<br>内容: 我还没有写,等我写好了,就传给你.:)
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:罗兹维尔 回复日期:2003-05-18 12:08:07
<br>内容:我也要<BR><BR>不过象边缘处理的一些算法对彩色图像有没有用?<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:uswrs 回复日期:2003-05-19 06:45:54
<br>内容:非常感谢 fenghan <BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:fenghan 回复日期:2003-05-19 09:51:45
<br>内容:以下是对一个256×256,24bit真彩色图像的拉普拉斯边缘检测算法,采用3×3算子,算子可以更改,比如说sobel等。LoadImg(),ShowImg()的程序没有给出,我想应该问题不大。<BR><BR>void CShowBMPView::LapulasRGBImg(unsigned char * Img,unsigned char * DestImg,int * Mask)<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;int x,y,m,n;<BR>&nbsp;&nbsp;&nbsp;&nbsp;float r,g,b;<BR>&nbsp;&nbsp;&nbsp;&nbsp;r=g=b=0.0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CDC * dc;<BR>&nbsp;&nbsp;&nbsp;&nbsp;dc=GetDC();<BR>&nbsp;&nbsp;&nbsp;&nbsp;for(y=1;y&lt;ImgH-1;y++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(x=1;x&lt;ImgW-1;x++)//不能访问边界点<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r=0.0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g=0.;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b=0.;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(n=-1;n&lt;=1;n++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(m=-1;m&lt;=1;m++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{//分别对三个颜色值卷积<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r+=Img[((x+m)+(y+n)*ImgW)*3+2]*Mask[(1+m)+(1+n)*3];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g+=Img[((x+m)+(y+n)*ImgW)*3+1]*Mask[(1+m)+(1+n)*3];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b+=Img[((x+m)+(y+n)*ImgW)*3]*Mask[(1+m)+(1+n)*3];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}//for,m,n<BR>//饱和运算<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r+=128;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;g+=128;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b+=128;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(r&lt;0) r=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(r&gt;255) r=255;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(g&lt;0) g=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(g&gt;255) g=255;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(b&lt;0) b=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(b&gt;255) b=255;<BR>/////////<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DestImg[(x+y*ImgW)*3+2]=(unsigned char)r;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DestImg[(x+y*ImgW)*3+1]=(unsigned char)g;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DestImg[(x+y*ImgW)*3]=(unsigned char)b;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}//of x,y<BR>&nbsp;&nbsp;&nbsp;&nbsp;ShowRGBImg(dc,DestImg,0,ImgH);//自己的显示函数,因人而异<BR>&nbsp;&nbsp;&nbsp;&nbsp;ReleaseDC(dc);<BR>}<BR>其中Img[](unsigned char )存放原始图像,DestImg[][](unsigned char )存放处理后图像。Mask[]为算子。请直接拷贝进vc,这样看起来方便些。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:uswrs 回复日期:2003-05-20 22:07:02
<br>内容:多谢&nbsp;&nbsp;fenghan&nbsp;&nbsp;&nbsp;&nbsp;慷慨的帮助。Well done!<BR>2003-5-25 3:27:23

⌨️ 快捷键说明

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