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

📄 subject_58555.htm

📁 vc
💻 HTM
字号:
<p>
序号:58555 发表者:gogo 发表日期:2003-11-01 22:34:06
<br>主题:图像颜色个数
<br>内容:1、给定彩色图,求它的颜色总数。就是说这幅图里面总共有多少个不同的颜色。<BR>2、把图的颜色个数减半。找两个颜色值最相近的像素,把平均之后的颜色值付给这两个像素。<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>
回复者:无情阁东雪 回复日期:2003-11-01 22:55:00
<br>内容:如果是16位以下的就好办,应该是调色板中颜色数<BR>如果是16以上的,就要得到真正的像素颜色值,对它的RGB分别进行比较了!
<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>回复者:视频新手 回复日期:2003-11-03 15:26:47
<br>内容:#define ColorSpace 256*256*256<BR>int Count[ColorSpace];//需要67M空间<BR>memset(Count,0,sizeof(int)*ColorSpace);<BR>for (int y=0; y&lt;PictureHeight; y++) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;for (int x=0; x&lt;PictureWidth; x++) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int color = GetPixel(x,y); //取第y行第x列的象素(真彩色24位)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Count[color] ++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>}<BR><BR>int i=0;<BR>for (y=0; y&lt;ColorSpace; y++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (Count[y]) i++;<BR>//这里i就是颜色总数<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-11-03 17:52:59
<br>内容:注意这里的GetPixel(x,y)函数,可能并不存在<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-11-04 12:50:11
<br>内容:呵呵,楼上的方法思路还行,可以你觉得这样行吗?<BR>#define ColorSpace 256*256*256<BR>int Count[ColorSpace];//需要67M空间
<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-11-04 16:18:40
<br>内容://原来的会出现堆栈溢出<BR>//改成下面这样吧<BR>&nbsp;&nbsp;&nbsp;&nbsp;#define ColorSpace 256*256*256<BR>&nbsp;&nbsp;&nbsp;&nbsp;int* Count = new int[ColorSpace];//需要67M空间<BR>&nbsp;&nbsp;&nbsp;&nbsp;memset(Count,0,sizeof(int)*ColorSpace);<BR>&nbsp;&nbsp;&nbsp;&nbsp;for (int y=0; y&lt;PictureHeight; y++) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int x=0; x&lt;PictureWidth; x++) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int color = GetPixel(x,y); //取第y行第x列的象素(真彩色24位)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Count[color] ++;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;int i=0;<BR>&nbsp;&nbsp;&nbsp;&nbsp;for (y=0; y&lt;ColorSpace; y++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (Count[y]) i++;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;delete Count;<BR>&nbsp;&nbsp;&nbsp;&nbsp;//这里i就是颜色总数<BR><BR>//注意这里的GetPixel(x,y)函数,可能并不存在<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-11-04 16:23:56
<br>内容:谢谢4楼提醒.
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:gogo 回复日期:2003-11-04 17:48:50
<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>
回复者:视频新手 回复日期:2003-11-04 17:59:34
<br>内容:找两个颜色值最相近的像素, 需要计算色距<BR>两个颜色color1,color2<BR>假定color1的三个分量是r1,g1,b1<BR>&nbsp;&nbsp;&nbsp;&nbsp;color2的三个分量是r2,g2,b2<BR>那么色距 d = sqrt((r2-r1)*(r2-r1) + (g2-g1)*(g2-g1) + (b2-b1)*(b2-b1))<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 + -