由于本人学的是非计算机专业,研究了几天的CxImage,终于做出了一个MFC小程序,并实现了图像的显示(bmp,jpg,tiff格式)
现在的问题是用CxImage中的哪些函数实现对tif文件的像素操作(例如图像的二值化)
请高手帮帮忙
能给示例源码的最好
感谢中!
现在的问题是用CxImage中的哪些函数实现对tif文件的像素操作(例如图像的二值化)
请高手帮帮忙
能给示例源码的最好
感谢中!
我对二值化的看法是:看起来是“黑”或者“白”
记得DIB图像二值化的时候,好像将r=g=b=0或者r=g=b=255就可以实现二值化,不知道tif文件中有没有定义r,g,b或c,m,y,k这样的参数,如果已经定义的话,怎样读取这些参数?
2.图书资料,貌似可以参看<数字图像处理vc++编程>;
3.二值化方法很多,基本思路在于设定一个参考值,大于这个值为1,否则为0.在获得每个像素后,对每个像素进行这个比较,可以生成其二值图.
4.tiff格式是彩图的一种,你首先需要变换为灰度图,才能二值化.
图像数据的格式很多,cximage 中有两种方法,一是argb实际颜色,就是每一个象素用四个字节表示他的实际颜色,a是透明度,0表示透明,255表示不透明; rgb分别红绿蓝三个颜色分量。你说的“好像将r=g=b=0或者r=g=b=255就可以实现二值化”可以用这种方法。用GetData和其它的方法把颜色数据取出来,进行你说的操作就行了。但是这样有一个问题,太浪费。于是有另外一种图像数据格式,索引颜色。在计算机里面,二值图像是一个标准术语,它是两个颜色的索引图像,不只是黑白,可以是任意两个颜色,还可以有透明度。分两个部分,一是调色板,调色板中有两个颜色,第二部分是图像数据,每个象素只占二进制一位0和1,0表示调色板中的第一个颜色,1表示调色板中的第二个颜色,这样的话,图像数据占的空间只有实际颜色的32分之1就说这么多,不知道说清楚了没有。
再请教一个问题,TIFF格式有4种类型,怎样才能知道读入的这个tiff文件是二值的、灰度的、RGB、还是CMYK?
我之所以认为二值图像就是黑和白,这都是matlab闹得,以前用matlab将图像转为二值,显示出来的就是黑和白,所以……当然,这些都是次要的