OpenCV 根据像素值调整图像大小和裁剪图像

2024-01-11

#include "iostream"
#include "cv.h"
#include "highgui.h"
#include "cvaux.h"
#include "cxmisc.h"
#include "math.h"

using namespace cv;
using namespace std;

int main(){

int height, width, x, y, i, minX, minY, maxX, maxY;
char imgFileName[100];


IplImage *origImage = cvLoadImage("BaybayinMark/b9.jpg", -1);
height = origImage->height;
width = origImage->width;

IplImage *grayImage = cvCreateImage(cvSize(width, height), 8, 1);
IplImage *binImage = cvCreateImage(cvSize(width, height), 8, 1);


//Pre-processing phase


cvCvtColor(origImage, grayImage, CV_BGR2GRAY);
cvDilate(grayImage, grayImage, NULL, 1);
cvSmooth(grayImage, grayImage, CV_GAUSSIAN, 21, 21, 0, 0);
cvThreshold(grayImage, binImage, 120, 255, CV_THRESH_BINARY);
cvNormalize(binImage,binImage,0,1,CV_MINMAX);

minX = width;
minY = height;
maxX = 0;
maxY = 0;


CvScalar s;


for (x=0; x<width-1; x++){
for(y=0; y<height-1; y++){
    s = cvGet2D(binImage, y, x);
    //printf("%f\n", s.val[0]);
    if (s.val[0] == 1){
        //printf("HELLO");
        minX = min(minX, x);
        minY = min(minY, y);
        maxX = max(maxX, x);
        maxY = max(maxY, y);

    }   
}
}

cvSetImageROI(binImage, cvRect(minX, minY, maxX-minX, maxY-minY));

IplImage *cropImage = cvCreateImage(cvGetSize(binImage), 8, 1);

cvCopy(binImage, cropImage, NULL);

cvSaveImage("crop/cropImage9.jpg", cropImage);
cvResetImageROI(binImage);

cvReleaseImage(&origImage);
cvReleaseImage(&binImage);

cvReleaseImage(&grayImage);
cvReleaseImage(&cropImage);

}

你好!我只是想问一下这段代码。我正在尝试识别图像的最外边缘并根据它们裁剪图像。运行后我所看到的只是一张大小相同的黑色图像。我是否尝试以错误的方式做这件事?请赐教,我是 OpenCV 的初学者。


在匆忙的寻找中what-这就是问题所在

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenCV 根据像素值调整图像大小和裁剪图像 的相关文章

  • 静态构造函数和 BeforeFieldInit?

    如果类型没有静态构造函数 则将执行字段初始值设定项 就在使用该类型之前 或者在某个时间点突发奇想 运行时 为什么这段代码 void Main start Dump Test EchoAndReturn Hello end Dump clas
  • 使用python从gst管道抓取帧到opencv

    我在用着OpenCV http opencv org 和GStreamer0 10 我使用此管道通过自定义套接字通过 UDP 接收 MPEG ts 数据包sockfd由 python 提供并显示它xvimagesink 而且效果很好 以下命
  • Boost ASIO 串行写入十六进制值

    我正在使用 ubuntu 通过串行端口与设备进行通信 所有消息都必须是十六进制值 我已经在 Windows 环境中使用白蚁测试了通信设置 并得到了我期望的响应 但在使用 Boost asio 时我无法得到任何响应 以下是我设置串口的方法 b
  • 在 Mono 中反序列化 JSON 数据

    使用 Monodroid 时 是否有一种简单的方法可以将简单的 JSON 字符串反序列化为 NET 对象 System Json 只提供序列化 不提供反序列化 我尝试过的各种第三方库都会导致 Mono Monodroid 出现问题 谢谢 f
  • C# 中一次性对象克隆会导致内存泄漏吗?

    检查这个代码 class someclass IDisposable private Bitmap imageObject public void ImageCrop int X int Y int W int H imageObject
  • Selenium - C# - Webdriver - 无法找到元素

    在 C 中使用 selenium 我试图打开浏览器 导航到 Google 并找到文本搜索字段 我尝试下面的 IWebDriver driver new InternetExplorerDriver C driver Navigate GoT
  • 防止控制台应用程序中的内存工作集最小化?

    我想防止控制台应用程序中的内存工作集最小化 在Windows应用程序中 我可以这样做覆盖 SC MINIMIZE 消息 http support microsoft com kb 293215 en us fr 1 但是 如何在控制台应用程
  • Android NDK 代码中的 SIGILL

    我在市场上有一个 NDK 应用程序 并获得了有关以下内容的本机崩溃报告 SIGILL信号 我使用 Google Breakpad 生成本机崩溃报告 以下是详细信息 我的应用程序是为armeabi v7a with霓虹灯支持 它在 NVIDI
  • 用于在标头更改时重新编译的简单 C 项目的示例 makefile

    有谁有完整的 makefile 可以执行以下操作 如果 HEADER 文件发生更改 则重建项目 cpp 文件在 makefile 中列出 头文件未在 makefile 中列出 头文件允许与 cpp 文件具有不同的名称 部分cpp文件没有头文
  • JavaScript 错误:MVC2 视图中的条件编译已关闭

    我试图在 MVC2 视图页面中单击时调用 JavaScript 函数 a href Select a JavaScript 函数 function SelectBenefit id code alert id alert code 这里 b
  • Linux 上的 RTLD_LOCAL 和dynamic_cast

    我们有一个由应用程序中的一些共享库构成的插件 我们需要在应用程序运行时更新它 出于性能原因 我们在卸载旧插件之前加载并开始使用新插件 并且只有当所有线程都使用旧插件完成后 我们才卸载它 由于新插件和旧插件的库具有相同的符号 我们dlopen
  • 如何防止 Blazor NavLink 组件的默认导航

    从 Blazor 3 1 Preview 2 开始 应该可以防止默认导航行为 https devblogs microsoft com aspnet asp net core updates in net core 3 1 preview
  • 在 azure blob 存储中就地创建 zip 文件

    我将文件存储在 Blob 存储帐户内的一个容器中 我需要在第二个容器中创建一个 zip 文件 其中包含第一个容器中的文件 我有一个使用辅助角色和 DotNetZip 工作的解决方案 但由于 zip 文件的大小最终可能达到 1GB 我担心在进
  • 我们可以通过指针来改变const定义的对象的值吗?

    include
  • 当Model和ViewModel一模一样的时候怎么办?

    我想知道什么是最佳实践 我被告知要始终创建 ViewModel 并且永远不要使用核心模型类将数据传递到视图 这就说得通了 让我把事情分开 但什么是Model 和ViewModel一模一样 我应该重新创建另一个类还是只是使用它 我觉得我应该重
  • 如何在C#中控制datagridview光标移动

    我希望 datagridview 光标向右移动到下一列 而不是在向单元格输入数据后移动到下一行 我试图通过 dataGridView1 KeyDown 事件捕获键来控制光标 但这并不能阻止光标在将数据输入到单元格后移动到下一行 提前感谢你的
  • C:设置变量范围内所有位的最有效方法

    让我们来int举个例子 int SetBitWithinRange const unsigned from const unsigned to To be implemented SetBitWithinRange应该返回一个int其中所有
  • 如何从 Windows Phone 7 模拟器获取数据

    我有一个 WP7 的单元测试框架 它在手机上运行 结果相当难以阅读 因此我将它们写入 XDocument 我的问题是 如何才能将这个 XML 文件从手机上移到我的桌面上 以便我可以实际分析结果 到目前为止 我所做的是将 Debugger B
  • 从后面的代码添加外部 css 文件

    我有一个 CSS 文件 例如 SomeStyle css 我是否可以将此样式表文档从其代码隐藏应用到 aspx 页面 您可以将文字控件添加到标头控件中 Page Header Controls Add new System Web UI L
  • 如何为有时异步的操作创建和实现接口

    假设我有数百个类 它们使用 计算 方法实现公共接口 一些类将执行异步 例如读取文件 而实现相同接口的其他类将执行同步代码 例如将两个数字相加 为了维护和性能 对此进行编码的好方法是什么 到目前为止我读到的帖子总是建议将异步 等待方法冒泡给调

随机推荐

  • 删除MySQL查询中的重复结果

    MySQL 查询检索 totalpoints name 55 John Doe 55 John Doe 55 John Doe 55 John Doe 55 John Doe 21 Jean London 21 Jean London 13
  • RTTI 可以在设计时询问项目代码中的类型吗?

    我想使用 RTTI 在设计时而不是运行时检查项目源文件中包含的类型 据我所知 这是不受支持的 但评论中的讨论这个问题 https stackoverflow com questions 9046778 class reference as
  • 替换 hg 分支的内容

    我有一个 hg 仓库 我曾经有一个名为 1 x 的短暂分支 它在某个时间点终止了 默认 它被关闭是因为我觉得在那个特定时刻不需要使用该分支 然而 我被迫放弃 默认 的开发方式 并在创建 1 x 之前的更早版本中创建另一个分支 我无法使用 1
  • 当我尝试使用或返回枚举值时,可以避免强制转换它吗?

    如果我有以下枚举 public enum ReturnValue Success 0 FailReason1 1 FailReason2 2 Etc 我可以在返回时避免强制转换吗 如下所示 public static int main st
  • Keycloak 中的资源、范围、权限和策略

    我想使用 Keycloak 的授权系统创建一个相当简单的基于角色的访问控制系统 Keycloak 正在取代的系统允许我们创建一个 用户 他是一个或多个 组 的成员 在这个遗留系统中 通过组成员身份 其中为组分配了权限 或直接向用户授予权限
  • HTMLagilityPack 与 Powershell、Windows 身份验证相结合

    所以我有一个叫做lansweeper的工具 它在本地服务器上运行 现在我想从中抓取一个页面 但它使用 Windows 身份验证 我使用 Powershell 作为脚本语言 我主要使用HTMLAgilityPack来抓取 但我从来没有抓取过使
  • if 中的单个等于。 JavaScript。有什么好的理由吗?

    jQuery each player function key val if el pr attr plain key el text val 0 val 我继承了一个项目 但我遇到了一些奇怪的事情 启动这个项目的人是一位经验丰富的程序员
  • 打开 facebook 页面进入 facebook 应用程序 Ios + ionic

    目标 在 facebook 应用程序中打开 facebook 页面 url 我正在使用离子version 1 6我努力了 a img src img fb png alt width auto height auto a 在控制器文件中 我
  • 使用 python 抓取 javascript:void(0) 内容

    我正在制作一个程序 其中我正在废弃一个网页 并且内容从原始页面隐藏并用于显示自身herf javascript void 0 链接和文本位于 p 进而 span tags 这是我的代码 import requests re from bs4
  • 类中的 JavaScript“onclick”上下文

    今天我想知道在一个项目中保留上下文的最佳方法onClick在类中使用时的侦听器 如果this在某个地方得到了回答 请将我链接到它 我显然太愚蠢了 找不到它 无论如何 我的问题是 是否有最佳实践 或者我的一些想法是否愚蠢甚至错误 我尝试了一些
  • 如何进行 Django REST 框架 /me/ 调用?

    假设我有一个ViewSet class ProfileViewSet viewsets ModelViewSet API endpoint that allows a user s profile to be viewed or edite
  • imap 自定义关键字

    我从哪开始呢 我似乎找不到任何明确的文档 我可能找错地方了 我希望能够编辑电子邮件的 IMAP 关键字 用于标记目的 我有一些非常菜鸟的问题 它们是如何添加的 关键字是否直接应用于消息标头 如果是 语法是什么 或者是否有其他类型的 imap
  • 错误:java.lang.SecurityException:签名者信息与同一包中其他类的签名者信息不匹配

    我正在使用下面的 jar 文件 bcmail jdk16 1 46 bcprov jdk16 1 46 commons codec 1 9 commons io 2 5 我在这一行遇到错误 CMSSignedData cms new CMS
  • python中通过爬取子URL来下载文件

    我正在尝试从大量网络链接下载文档 主要是pdf格式 如下所示 https projects worldbank org en projects operations document detail P167897 type projects
  • 当未设置属性时,构建失败的简单方法是什么?

    正如标题中所述 我如何以最简单的方式修改apom xml为了使其在命令行中未设置属性时失败 例如 mvn clean package将会失败 当mvn clean package Dfoo bar将会成功 我正在寻找类似的东西
  • 每秒基板事务性能

    大家好 我有一个与性能相关的问题 我正在运行 2 个具有 30GB 存储空间的 aws 实例 t2 2xlarge 我正在使用默认设置在每个节点上运行 v2 0 节点 几天前从 master 分支 并且我正在测试每秒可以处理多少事务 平均每
  • 为什么我需要在 JPA 中双向设置实体

    我有以下两个实体 Entity public class Pilot implements Serializable ManyToOne JoinColumn name FLIGHT ID private Flight flight and
  • Kotlin async/await 语法不会阻塞调用者

    我想知道 Kotlin 是否可以取代我们当前处理异步代码的方式 现在 我们使用CompletableFutures处理异步代码 下面是这种方法的一个例子 public void onBalanceRequest Client client
  • 由于缺少 android SDK,Jenkins 构建失败

    正如标题所示 我的 jenkins 构建由于找不到 android sdk 而失败 尽管它位于环境路径中 这是控制台日志 Started by user anonymous Building in workspace Users lmnap
  • OpenCV 根据像素值调整图像大小和裁剪图像

    include iostream include cv h include highgui h include cvaux h include cxmisc h include math h using namespace cv using