Halcon实战记录之一《划分图像区域为中心,四边,四角》
2017-07-14 16:37
435 查看
在做图像处理的时候,我们有时候对图像的不同区域的处理方式不一样,我这里写下我最近使用的方法,将一副图像分成三个区域–中心,四边,四角,如下图:
边的最小宽度和高度占图像的比例为Ratio,例如Rato等于0.1,即中心占图像的0.8的比例。
1、获取中心区域:
2、获取四边区域:
3、获取四角区域:
注意:四边和四角的区域各有四个,返回的是联合区域。
边的最小宽度和高度占图像的比例为Ratio,例如Rato等于0.1,即中心占图像的0.8的比例。
1、获取中心区域:
void GetImageRegion_Center (HObject *ho_Region, HTuple hv_imWidth, HTuple hv_imHeight, HTuple hv_Ratio) { GenRectangle1(&(*ho_Region), hv_imHeight*hv_Ratio, hv_imWidth*hv_Ratio, (hv_imHeight*(1-hv_Ratio))-1, (hv_imWidth*(1-hv_Ratio))-1); }
2、获取四边区域:
void GetImageRegion_Side (HObject *ho_Region, HTuple hv_imWidth, HTuple hv_imHeight, HTuple hv_Ratio) { // Local iconic variables HObject ho_Rectangle_top, ho_Rectangle_bot, ho_Rectangle_lft; HObject ho_Rectangle_rgt, ho_ObjectsConcat; //top GenRectangle1(&ho_Rectangle_top, 0, hv_imWidth*hv_Ratio, (hv_imHeight*hv_Ratio)-1, (hv_imWidth*(1-hv_Ratio))-1); //bottom GenRectangle1(&ho_Rectangle_bot, hv_imHeight*(1-hv_Ratio),hv_imWidth*hv_Ratio, hv_imHeight-1, (hv_imWidth*(1-hv_Ratio))-1); //left GenRectangle1(&ho_Rectangle_lft, hv_imHeight*hv_Ratio, 0, (hv_imHeight*(1-hv_Ratio))-1, (hv_imWidth*hv_Ratio)-1); //right GenRectangle1(&ho_Rectangle_rgt, hv_imHeight*hv_Ratio, hv_imWidth*(1-hv_Ratio), (hv_imHeight*(1-hv_Ratio))-1, hv_imWidth-1); ConcatObj(ho_Rectangle_top, ho_Rectangle_bot, &ho_ObjectsConcat); ConcatObj(ho_ObjectsConcat, ho_Rectangle_lft, &ho_ObjectsConcat); ConcatObj(ho_ObjectsConcat, ho_Rectangle_rgt, &ho_ObjectsConcat); Union1(ho_ObjectsConcat, &(*ho_Region)); }
3、获取四角区域:
void GetImageRegion_Corner (HObject *ho_Region, HTuple hv_imWidth, HTuple hv_imHeight, HTuple hv_Ratio) { // Local iconic variables HObject ho_Rectangle_lt, ho_Rectangle_lb, ho_Rectangle_rt; HObject ho_Rectangle_rb, ho_ObjectsConcat; //left top GenRectangle1(&ho_Rectangle_lt, 0, 0, (hv_imHeight*hv_Ratio)-1, (hv_imWidth*hv_Ratio)-1); //left bottom GenRectangle1(&ho_Rectangle_lb, hv_imHeight*(1-hv_Ratio), 0, hv_imHeight-1, (hv_imWidth*hv_Ratio)-1); //right top GenRectangle1(&ho_Rectangle_rt, 0, hv_imWidth*(1-hv_Ratio), (hv_imHeight*hv_Ratio)-1, hv_imWidth-1); //right bottom GenRectangle1(&ho_Rectangle_rb, hv_imHeight*(1-hv_Ratio), hv_imWidth*(1-hv_Ratio), hv_imHeight-1, hv_imWidth-1); ConcatObj(ho_Rectangle_lt, ho_Rectangle_lb, &ho_ObjectsConcat); ConcatObj(ho_ObjectsConcat, ho_Rectangle_rt, &ho_ObjectsConcat); ConcatObj(ho_ObjectsConcat, ho_Rectangle_rb, &ho_ObjectsConcat); Union1(ho_ObjectsConcat, &(*ho_Region)); }
注意:四边和四角的区域各有四个,返回的是联合区域。
相关文章推荐
- 图像检索服务器编写问题记录——MSER最大稳定极值区域检测
- OpenCV 学习记录4 ROI区域图像叠加及线性图像混合
- Halcon:获取Image图像中Region区域的特征参数
- Halcon学习之六:获取Image图像中Region区域的特征参数
- halcon截取图像中被标记的区域
- 图像处理学习笔记(一)二值图像连通区域的几何中心
- 将图像分割成以每个像素为中心32*32的区域
- HALCON学习-读取显示图像、矩形区域配置
- 7.给图像划分区域
- 图像处理之基础---肤色检测算法 - 基于不同颜色空间简单区域划分的皮肤检测算法
- Halcon实战记录之二《判断两个直线或者矩形是否相交》
- Halcon学习之六:获取Image图像中Region区域的特征参数
- Halcon 算子 截取区域生成图像
- Halcon算子--图像、区域、轮廓、测量、拟合、垂足、夹角
- Halcon学习之六:获取Image图像中Region区域的特征参数
- Halcon 算子 使用灰度获得图像区域
- Halcon学习——region_to_bin(将图像的一个区域转换为二值图)
- Halcon实战记录之三《模板制作--两点定位》
- Opencv关于两图像感兴趣区域划分、拼合详解
- Halcon学习之八:图像区域叠加与绘制