裁切区域

halcon实现图片裁切,用roi画区域将区域内的目标裁切下来图片尺寸保持不变加代码 拖一张图片到halcon软件中,或者直接读取。画好区域后,鼠标右击一下你画的roi区域如上。然后再利用代码将你画出的区域保存下来。然后点击上方区域 代码生成。以上点击你要画的区域形状。 阅读详情

新建工程testClip

添加类ClipLayer

ClipLayer.h

//

//  ClipLayer.h

//  testClip

//

//  Created by cloud on 13-4-11.

//

//


#ifndef __testClip__ClipLayer__

#define __testClip__ClipLayer__


#include "cocos2d.h"

using namespace cocos2d;

class ClipLayer:public CCLayer

{

public:

    static ClipLayer *create(CCSize size);

    void clipLayerInit(CCSize size);

    void visit();

    CCSize mSize;

};


#endif /* defined(__testClip__ClipLayer__) */


ClipLayer.cpp

//

//  ClipLayer.cpp

//  testClip

//

//  Created by cloud on 13-4-11.

//

//


#include "ClipLayer.h"

ClipLayer *ClipLayer::create(CCSize size)

{

    ClipLayer *nCLayer=new ClipLayer();

    if (nCLayer&&nCLayer->init()) {

        nCLayer->autorelease();

        nCLayer->clipLayerInit(size);

        return nCLayer;

    }

    CC_SAFE_DELETE(nCLayer);

    return NULL;

}

void ClipLayer::clipLayerInit(CCSize size)

{

    mSize=size;   

    

}

void ClipLayer::visit()

{

    kmGLPushMatrix();

    

    if (m_pGrid&&m_pGrid->isActive()) {

        m_pGrid->beforeDraw();

        this->transformAncestors();

    }

    this->transform();

    

    //默认情况,剪裁是禁用的

    glEnable(GL_SCISSOR_TEST);//启用剪裁测试

    

    float s= this->getScale();//当前layer缩放的倍数

    //获取缩放倍率

    s *=CCDirector::sharedDirector()->getContentScaleFactor();

    CCPoint screenPos=this->convertToWorldSpace(this->getParent()->getPosition());

    //默认不设置Scissor的大小是整个视图的大小

    glScissor((GLint)screenPos.x, (GLint)screenPos.y, (GLsizei)(mSize.width*s), (GLsizei)(mSize.height*s));

    

    if (m_pChildren) {

        ccArray *arrayData=m_pChildren->data;

        unsigned int i=0;

        for (; i<arrayData->num; i++)

        {

            CCNode *child=(CCNode *)arrayData->arr[i];

            if(child->getZOrder()<0)

            {                

                child->visit();                

            }

            else

            {

                break;

            }


        }

        this->draw();

        for (;i<arrayData->num; i++) {

            CCNode *child=(CCNode*)arrayData->arr[i];

            child->visit();

        }

    }

    else

    {

        this->draw();

    }

    glDisable(GL_SCISSOR_TEST);//禁用剪裁

    if (m_pGrid&&m_pGrid->isActive()) {

        m_pGrid->afterDraw(this);

    }

    kmGLPopMatrix();

    

}

修改HelloWorldScene.cpp

#include "HelloWorldScene.h"

#include "SimpleAudioEngine.h"

#include "ClipLayer.h"


using namespace cocos2d;

using namespace CocosDenshion;


CCScene* HelloWorld::scene()

{

    // 'scene' is an autorelease object

    CCScene *scene = CCScene::create();

    

    // 'layer' is an autorelease object

    HelloWorld *layer = HelloWorld::create();


    // add layer as a child to scene

    scene->addChild(layer);


    // return the scene

    return scene;

}


// on "init" you need to initialize your instance

bool HelloWorld::init()

{

    //////////////////////////////

    // 1. super init first

    if ( !CCLayer::init() )

    {

        return false;

    }


#define clipMacro 3

    switch (clipMacro) {

        case 1:

        {

            CCLabelTTF *label=CCLabelTTF::create("正常精灵", "Helvetica", 24);

            label->setPosition(ccp(100,260));

            addChild(label);

            CCLabelTTF *clipLabel=CCLabelTTF::create("剪裁后的精灵", "Helvetica",24);

            clipLabel->setPosition(ccp(300,260));

            addChild(clipLabel);

            

            CCSprite *sprite=CCSprite::create("Icon.png");

            sprite->setPosition(ccpAdd(label->getPosition(), ccp(0,-100)));

            addChild(sprite);

            

            CCSprite *clipSprite=CCSprite::create("Icon.png");

            clipSprite->setPosition(ccpAdd(clipLabel->getPosition(), ccp(0,-100)));

            clipSprite->setTextureRect(CCRectMake(0, 0, 30, 30));

            addChild(clipSprite);


        }

            break;

        case 2:

        {

            CCLayer *layer=CCLayer::create();

            layer->setPosition(ccp(190,110));//Icon不应该显示全,但它显示全了,说明没剪裁

            layer->addChild(CCSprite::create("Icon.png"));

            addChild(layer);

        }

            break;

        case 3:

        {

            CCSize size = CCDirector::sharedDirector()->getWinSize();

            CCLayerColor* colorBg = CCLayerColor::create(ccc4(255, 127, 0, 255), size.width,size.height);

            addChild(colorBg);


            

            ClipLayer *clipLayer=ClipLayer::create(CCSizeMake(100, 100));

            clipLayer->setPosition(ccp(190,110));

            clipLayer->addChild(CCSprite::create("Icon.png"));

            addChild(clipLayer);

        }

            break;

        default:

            break;

    }

    

    

    return true;

}



基于Python+OpenCV自动提取并裁切ROI(感兴趣区域) 主要记录一下自己在找资料并实现的过程一、基本思路二、代码实例 一、基本思路 通过OpenCV读取图片,进行二值化操作后寻找轮廓,并且将轮廓保存再与原图片进行位与运算,完成裁切效果。本项目中主要提取图片中的圆形以及三角形。 二、代码实例 // An highlighted block src = cv.imread(r"D:\test5.jpg") # 读取图片 ROI = np.zeros(src... 阅读详情

相关推荐

开发板的使用

一、开发板使用学习大纲。 1、开发板组成、核心板资源,底板资源。 2、开发板连接、调试工具、串口参数配置。 3、开发板启动过程。 4、文件传输 1)使用串口传输。 上传/下载 2)使用网口传输。 上传/下载 5、临时/永久配置开发板IP地址。 6、开发板启动脚本。 二、开发板的组成。 核心板: CPU处理器: 芯片:S5P6818(三星) 内核: ARM cortex-A53 -> 八核处理器 运行内存:512MB*2=1G nandflash:4G 底板: 电源线:5V 串口...

qq_45633736的博客 2658

如何推导视景体的6各面

如何推导视景体的6各面   2012-07-05 14:54:27|  分类: 3D游戏学习笔记 |  标签: |字号大中小 订阅    一般我们都是计算在世界坐标中的六个面,由于我们知道的是,在透视坐标中,每个坐标系都有固定的范围,而透视坐标所显示的范围正好为我们计算世界坐标中的六个面。    我们知道,在透视坐标中,x(-1.0f,1.0f),y(-1.0f,1.

GameRefer的专栏 1018

68页|大型车企集团数字化转型汽车数字化信息系统平台规划方案

这份PPT文档提供了一个全面的汽车集团数字化转型规划方案,涵盖了项目目标、规划思路、实施关注点、解决方案建议以及合作优势等多个方面。

baidu_25525561的博客 1328

使用ThreeJs搭建BIM模型浏览器 第四步 剖切

技术方案:threejs的剖切,是由renderer.clippingPlanes实现的。 this.clipHelpers = new THREE.Group(); this.clipHelpers.add(new THREE.AxesHelper(20)); this.globalPlanes = new THREE.Plane(new THREE...

疯狂的蒲公英 5793

AHB2eflash 控制器设计笔记

① SRAM② DRAM③ SSD④ SATA⑤ U 盘⑥ 移动硬盘⑦ 机械磁盘eflash。

weixin_46220498的博客 3077

华硕三频万兆分布式路由组网实战:从AiMesh 2.0到全屋Wi-Fi 6覆盖

Mesh组网是解决大户型Wi-Fi覆盖难题的主流方案,其核心原理是通过多个节点构建网状网络,实现设备间的无缝漫游。在技术层面,Wi-Fi 6标准、三频设计(包括专属回程频段)和有线回程等技术,共同提升了网络的带宽、稳定性和抗干扰能力。这些技术的工程价值在于,能够为多设备并发、高带宽应用(如4K/8K流媒体、在线游戏、内网文件高速传输)提供可靠支撑。具体到应用场景,例如利用华硕AiMesh 2.0系统,配合三频万兆分布式路由器,可以实现智能的设备连接与负载均衡。通过合理规划节点位置、优先采用有线回程,并进行Q

weixin_34054866的博客 431

Cesium左右立体视觉续篇——遗留问题(渲染错误)以及临时替代方案

遗留问题详细说明 已解决部分 立体视觉中的视差; 横向渲染压缩。 遗留问题   1.左右分屏中的部分地图切片未渲染 问题描述:如下图(图片为解决问题后的图片),红色区域会显示黑色,无法正常显示影像。2.相机的位置出现在地形下方 问题描述:当左屏幕的相机紧贴地形表面时,由于视差的存在,右屏幕的相机会位于地形下方,导致右屏幕中的地形渲染出现问题 ...

weixin_34125592的博客 689

Python实战:用MNE-Python从脑电数据中提取P300成分(附完整代码)

本文提供了一份使用MNE-Python从脑电数据中提取P300成分的完整实战指南。通过详细的代码示例,系统讲解了从环境搭建、数据加载、预处理(滤波、分段、伪迹剔除)到P300波形提取、可视化与参数量化的全流程。重点介绍了如何利用零相位滤波和叠加平均技术,从EEG信号中精准分离出反映认知加工的P300事件相关电位,适用于脑机接口与认知神经科学研究。

weixin_29240343的博客 338

cesium之平面裁切

3D Tiles裁切 简单案例:创造一个通过模型原点的法线向下的裁切平面,如图所示:黄色部位为被裁剪的部位。 let clippingPlanes = new Cesium.ClippingPlaneCollection({ planes: [ new Cesium.ClippingPlane(new Cesium.Cartesian3(0.0, 0.0, -0.1), ...

呱呱的博客 5642

体验灵雀云-创建基于Docker的云服务

今天体验了一下灵雀云,创建了第一个基于Docker的云服务。 1.登录灵雀云 2.开始使用 登录之后,从"控制台"进入操作界面,开始创建服务。 首先需要选择一个镜像。灵雀云已经为您提供了一些常用的镜像列表。请在“常用镜像”列表中,选择“其它”,然后找到“alauda/hello-world”镜像,点击它右侧的“选择”按钮,进入服务参数配置页面。 选择完要创建的

tomcat的专栏 3234

自抗扰控制(ADRC)理论与工程实践:8.2 模糊ADRC、神经网络ADRC等智能融合变体

智能融合ADRC变体概述 自抗扰控制(ADRC)与智能控制方法(如模糊逻辑、神经网络)的融合,旨在突破传统ADRC在非线性、时变系统中的应用局限。智能融合ADRC主要通过以下方式实现性能提升: 模糊ADRC 参数自整定:利用模糊推理在线调节ADRC带宽参数,实现自适应控制。 非线性反馈:用模糊控制器替代线性PD,灵活设计非线性控制策略。 优势:融入专家经验,无需精确模型;局限:依赖规则库设计,稳定性分析困难。 神经网络ADRC 增强ESO:用神经网络学习扰动动态,提高估计精度。

技术工作者 226

JS实现从照片中裁切自已的肖像

代码如下: &lt;HTML xmlns:v&gt; &lt;BODY&gt; &lt;style&gt; #tbHole td{background:white;filter:alpha(opacity=50);-moz-opacity:.5} #tbHole img{width:1;height:1;visibility:hidden} v\:*{behavior:url(#defa...

happmaoo的专栏 392

Python爬虫实战:利用Playwright和反反爬技术高效抓取Bloomberg金融数据

用户行为分析(鼠标移动、点击模式)请求头检测IP频率限制WebSocket通信验证Canvas指纹识别我们的爬虫需要模拟人类行为,使用代理IP池,并合理控制请求频率。

2201_76125261的博客 1020

Photoshop自动裁切,透明区域不显示

自动裁切带有背景的图形 新建文档,在背景图层上绘制了一个矩形,周围是背景,把文档大小裁切剪到和矩形一样的大小 选择图像菜单的裁切命令 弹出裁切对话框,选择裁切基准点,因为是背景图层,有背景颜色,所以透明像素不可选,选择左上角像素颜色或者右下角像素颜色。裁切边缘选择顶、左、底、右四个方向,点击确定。(如果你不想裁切某个或者几个方向可以去...

weixin_30767921的博客 782

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

CCLayer自定义裁切区域

在Cocos2d-x中新建的CCLayer默认是没有设置裁切区域的,

skyinmoon的专栏 889

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

轻松批量裁切视频区域,让视频更加完美!

1、这次我们需要用到“天图视频剪辑”工具,感兴趣的小伙伴可以去浏览器中搜索“天图工作室”进入网站的软件中心,就可以免费下载获取。6、保存设置之后,我们选择视频的格式,然后再点击“浏览”功能,选择保存视频的位置,最后点击“开始剪辑”即可。4、在“设置新视频选项”处勾选“画面裁切”功能,之后点击“智能编辑裁切区域”按钮。2、下载完成后打开,我们点击上方的“批量剪辑视频”功能,进入页面。3、之后,我们点击“添加视频”功能,把需要裁切的视频添加进去。6、在完成后,点击“打开文件夹”找到保存视频的位置。

htqkll123的博客 810

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

修模界的“神器”模方 | 视图裁切、底灰修复、区域选取、联动质检——让修模更高效

在常规的修模过程中,“脏乱差”处理、底灰纹理修复、多次进入Photoshop等过程会耗费一半以上的修模时间;因而,高效处理“脏乱差”区域、简化底灰纹理处理方式、进一步优化辅助功能等需求变得极为迫切。 为了解决这些需求,模方新增视图裁切功能、底灰处理功能、目标区域选取功能,并对有关辅助功能进一步优化,极大的减少了修模的时间,提高修模效率。 1.视图裁切功能,让犄角旮旯的“脏乱差”无处遁形 在房屋密集、高架桥下、植被较多的区域,模型之间经常相互遮挡,需要反复调整模型位置进行修模,这个调整模型的过程繁琐且.

Daspatial_的博客 2867

php base64转图片旋转 //裁切空白区域

class ImgSpin extends CI { public $degrees; public $fileimg; public $pathFile; //保存的图片路径 public function __construct() { $this->fileimg = ''; // 路径或者base64 $th...

wyd220的博客 689

【SkiaSharp绘图12】SKCanvas方法详解(一)清空、裁切区域设置、连接矩阵、注释、弧与扇形、图集、九宫格绘图、圆

Clear 清空 ClipPath/ClipRect/ClipRegion/ClipRoundRect 设置裁切区域 Concat 连接矩阵 DrawAnnotation绘制注释 DrawArc绘制椭圆弧、扇形 DrawAtlas绘制图集(一个图像、多个区域、多个缩放、一次绘制) DrawBitmap绘制图像 DrawBitmapNinePatch九宫格绘图 DrawBitmapLattice 格子绘图 DrawCircle 绘制圆

图南堂 2692

利用ArcGIS裁切栅格影像感兴趣区域

常用两种方式:1是通过工具箱 栅格处理工具集 裁切工具实现;2是在视图绘制图形,再按绘制范围导出数据。方法1适用于裁切范围已知,小范围实验方法2更方便。

暂无 1549

【前端】CSS 属性 mask 允许使用者通过遮罩或者裁切特定区域

css mask属性使元素根据图片内容裁剪形状

weixin_45208537的博客 584

php按坐标截取图片,PHP按自定义大小裁切图像,自适应缩放裁剪区域

起因Mikusa同学的博客首页缩略图太大,影响加载速度。我建议他写一个缩略图裁切方法,以便在不需要原图的场合优化加载速度。他说他不会,我就写了。写完之后跟他的typecho主题结合了下,并发表(shui)了这篇文章。原理每次调用时判断图片对应的缓存文件是否存在,如果存在则直接返回图片地址,如果不存在则切割一张图片并保存。(此原理源于宾果博客Beginning主题)程序难点由于图片的比例不同,如何选...

weixin_32039589的博客 530

OpenCV裁切,超出图片区域填入指定

参考网址:OpenCV图像剪切,超出图像区域指定颜色填充

咸愚翻生的博客 2235

卡证检测矫正模型行业落地:快递面单中驾驶证信息区域自动裁切

本文介绍了如何在星图GPU平台上自动化部署卡证检测矫正模型,实现快递面单中驾驶证信息区域的自动裁切。该方案通过AI模型精准定位并矫正倾斜的驾驶证复印件,随后提取关键信息区域,为后续OCR识别提供规整图像,显著提升物流分拣环节的自动化处理效率与准确性。

weixin_35835018的博客 765

lisp实现框选裁切_小程序图片选择区域/等屏裁剪实现方法

效果图HTML代码开始裁剪点击上传图片点击确认等屏裁剪区域裁剪重新裁剪CSS代码.imgCut_header{padding: 30rpx;display: flex;justify-content: space-between;align-items: center;background: #000;color: #fff;font-size: 24rpx;}.allCavans{margin:...

weixin_39946239的博客 571

python打造光斑处理系统4:裁切光斑感兴趣区域

所谓手动阈值裁切,就是通过一个阈值对图像二值化,然后统计大于这个阈值的像素个数,假设这些像素围成一个圆形,那么由此可得到这个圆形的半径。再通过求取图像的质心,即可得到一个正方形的区域,可作为裁切的标记。

微小冷的学习笔记 1412
上一篇: 摇杆
下一篇: 飞行游戏demo
缥缈的云
博客等级 码龄15年 94粉丝 179原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值