1.得到图像任意部分。生成另一张图片
void test()
{
HImage image;
image.ReadImage("1.jpg");//读图片
Hlong width, height;
image.GetImageSize(&width, &height);//获得图像尺寸
HWindow w(0, 0, width, height);//定义窗口
w.SetColor("red");
w.DispColor(image);//显示图片
HRegion region = w.DrawRegion();//绘制窗口
HImage result = image.ReduceDomain(region);//保留选定部分
HImage re = result.CropDomain();//获得上一步选定区域图像的剪裁,得到该区域的最小外接矩形
w.ClearWindow();
w.DispColor(result);
w.Click();
}
void test()
{
HImage image;
image.ReadImage("1.jpg");
Hlong width, height;
image.GetImageSize(&width, &height);
HWindow w(0, 0, width, height);
w.SetColor("red");
w.DispColor(image);
HRegion region = w.DrawRegion();
HImage result = region.AddChannels(image);//根据指定的区域,选择该区域图像的灰度值,得到新的图像
w.ClearWindow();
w.DispColor(result);
w.Click();
}
2.灰度化
void test()
{
HImage image;
image.ReadImage("1.jpg");
Hlong width, height;
image.GetImageSize(&width, &height);
HWindow w(0, 0, width, height);
w.DispColor(image);
w.Click();
HImage result1 = image.Rgb1ToGray();//转换24位彩色图为灰色图
HImage red, green, blue;
red = image.Decompose3(&green, &blue);//将三通道图像转化为三个单通道图像(R,G,B)
HImage result2=red.Rgb3ToGray(green, blue);//将三幅单通道图像合并为一幅单通道灰度图像
w.ClearWindow();
w.DispImage(result);//注意,彩色图与灰度图显示语句不同
w.Click();
}
3.灰度值取反
void test()
{
HImage image;
image.ReadImage("1.jpg");
Hlong width, height;
image.GetImageSize(&width, &height);
HWindow w(0, 0, width, height);
w.DispColor(image);
w.Click();
HImage gray = image.Rgb1ToGray();//转换24位彩色图为灰色图
w.ClearWindow();
w.DispImage(gray);//注意,彩色图与灰度图显示语句不同
w.Click();
HImage result = gray.InvertImage();
w.ClearWindow();
w.DispImage(result);//注意,彩色图与灰度图显示语句不同
w.Click();
}
4.设置像素值
void test()
{
HImage image;
image.GenImageConst("byte", 500, 500);
HTuple width, height;
HTuple s;
image.GetImageSize(&width, &height);
HWindow w(0, 0, width, height);
for (int i = 100; i 1; i++)
{
for (int j = 200; j < height-1; j++)
{
image.SetGrayval(i, j, (i + j) % 256);
}
}
w.DispImage(image);
w.Click();
}
5.根据输入图像类型,创建一个指定像素的纯色图像
void test()
{
HImage image;
image.GenImageConst("byte", 500, 500);
HImage result=image.GenImageProto(170);
HTuple width, height;
HTuple s;
image.GetImageSize(&width, &height);
HWindow w(0, 0, width, height);
w.DispImage(image);
w.Click();
w.DispImage(result);
w.Click();
}
6.保存图片
void test()
{
HImage image;
image.GenImageConst("byte", 500, 500);
HImage result=image.GenImageProto(170);
HTuple width, height;
HTuple s;
image.GetImageSize(&width, &height);
result.WriteImage("jpeg", 0, "write");
HWindow w(0, 0, width, height);
w.DispImage(image);
w.Click();
w.DispImage(result);
w.Click();
}
7.将窗口内容保存为图像
void test()
{
HWindow w(0, 0, 500, 500);
HRegion region=w.DrawRegion();
w.SetColor("red");
w.DispRegion(region);
w.Click();
w.DumpWindow("jpeg", "window");
}
下面列举一些常用的图像处理算子
TransFromRgb:把图像从RGB颜色空间转换到任意颜色空间
TransToRgb:把图像从任意颜色空间转换到Rgb颜色空间
InvertImage:图像反转(灰度值取反图像)
GetImagePointer1:获取单通道图像的指针
GetImagePointer3:获取3通道图像的指针(三个指针,分别是R,G,B)
GenImage1:根据指定指针和类型,获取单通道图像
GenImage3:根据指针和类型,获取3通道图像
GenImageConst:创建一个图像,并为图像所有像素指定同一个灰度值
GenImageProto:创建一个图像,并为所有像素指定同一个像素值
GetImageSize:获得像素尺寸
WriteImage:根据指定图像格式,保存图像
GetGrayval:获得指定点的像素值
SetGrayval:设置指定点的像素值
DumpWindow:把窗口内容以图像文件格式保存
DumpWindowImage:把窗口内容保存到一幅图像对象上
CopyImage:复制图像