- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作dip::EuclideanSkeleton
。但是,在执行时,它引发了一个未处理的异常。返回类型和传递给函数的类型是否不匹配?如果是这样,我该如何解决?我没有更多的猜测了。如果没有dip::EuclideanSkeleton
,程序将运行。
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <string>
#include "diplib.h"
#include "diplib/file_io.h"
#include "diplib/regions.h"
#include "diplib/display.h"
#include <dip_opencv_interface.h>
#include "diplib/binary.h"
int main() {
cv::Mat img = cv::imread("Cables.jpg", cv::IMREAD_GRAYSCALE);
if (img.empty()) {
return -1;
}
cv::Mat thresh = img.clone();
medianBlur(thresh, thresh, 7);
threshold(thresh, thresh, 127, 255, cv::THRESH_BINARY);
dip::Image image = dip_opencv::MatToDip(thresh);
dip::Image conv = dip::EuclideanSkeleton(image);
cv::Mat final = dip_opencv::DipToMat(conv);
cv::imshow("", final);
cv::waitKey(0);
}
在:
dataType_ {dt=UINT8 (1) } dip::DataType
dataType_ {dt=SFLOAT (9) } dip::DataType
Unhandled exception at 0x00007FF85A0F3B29 in Skel_endpoints.exe: Microsoft C++ exception: dip::ParameterError at memory location 0x000000BAF730EDD8.
最佳答案
问题是dip::EuclideanSkeleton
需要二进制图像,但是OpenCV不知道二进制类型。 thresh
是8位无符号整数类型,转换为DIPlib对象时,转换无法知道这是8位uint图像还是二进制图像。此外,OpenCV使用0和255的值表示二进制图像,而DIPlib使用0和1的值。这是described in the documentation。
解决方案是将8位uint镜像强制为二进制。最简单的方法是简单地与零进行比较:dip_opencv::MatToDip(thresh) > 0
。如果执行此操作,则可以跳过对cv::threshold
的调用。
接下来,转换dip_opencv::DipToMat(conv)
将产生一个CV_8U
图像,但是包含值0和1,而不是其他OpenCV函数所期望的值0和255。同样,一种简单的方法是将结果乘以255:dip_opencv::DipToMat(conv) * 255
。
该程序将如下所示:
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include "diplib.h"
#include <dip_opencv_interface.h>
#include "diplib/binary.h"
int main() {
cv::Mat img = cv::imread("erika.tif", cv::IMREAD_GRAYSCALE);
if (img.empty()) {
return -1;
}
cv::Mat thresh = img.clone();
medianBlur(thresh, thresh, 7);
dip::Image image = dip_opencv::MatToDip(thresh) > 127;
dip::Image conv = dip::EuclideanSkeleton(image);
cv::Mat final = dip_opencv::DipToMat(conv) * 255;
cv::imwrite("foo.png", final);
}
what()
字符串。我建议您在所有代码周围放置一个
try
/
catch
块,以便可以显示此字符串。 DIPlib提供有关抛出异常的有用信息:
int main() {
try {
// your code here
} catch (std::exception const& stde) {
std::cout << "Caught exception:\n" << stde.what() << '\n';
}
}
关于c++ - dip::EuclideanSkeleton不起作用(未处理的异常),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64029804/
将常规像素转换为 DIP 的公式是什么? 假设我有一个 photoshop 文件,里面有一个设计用于 Galaxy Tab(例如),实际像素为 600x1024。 这些与 DIP 之间的比率是多少?我
本文实例讲述了PHP面向对象五大原则之依赖倒置原则(DIP)。分享给大家供大家参考,具体如下: 什么是依赖倒置呢?简单地讲就是将依赖关系倒置为依赖接口,具体概念如下: 1.上层模块不应该依赖于下
我已经读过很多次了,CN.convertToPixels (float dipCount) 等方法中使用了 dipCount 参数。指的数量物理毫米 转换为像素,具体取决于屏幕的密度。 然而,java
我正在尝试制作dip::EuclideanSkeleton。但是,在执行时,它引发了一个未处理的异常。返回类型和传递给函数的类型是否不匹配?如果是这样,我该如何解决?我没有更多的猜测了。如果没有dip
我是 Android 开发的新手,我正在努力使我的应用程序适应各种分辨率。我最近听说了 dip 的概念,但我不明白这个单元的目的。我知道无论屏幕分辨率如何,它都允许显示具有相同物理尺寸的内容。 但问题
如果在布局 xml 文件中,我将大小设置为,例如 12dip。在 mdpi 中总是 12px 而在 hdpi 中总是 18px 吗? 那么对于 mdpi 来说 dip 总是正确的并且对于其他密度会相应
我可以在 android 上使用显示独立像素的 DrawBitmap 吗? 如果没有,是否有合适的替代方案? 谢谢。 最佳答案 您是否正在寻找如何将像素更改为倾斜?那么你可以使用下面的代码 int p
我如何指定一个 int 参数在 dip 中?具体来说,如何写相当于: android:layout_width="50dip" android:layout_height="50dip" 类似...:
计量单位之间有什么区别px、dip、dp、sp? 最佳答案 来自 Android Developer Documentation : px Pixels - corresponds to actual
我最近在 Robert.C.Martin 的优秀著作《C# 中的敏捷原则、模式和实践》中读到了依赖倒置原则。然而,我觉得我不完全理解这个原则的一个方面。 Robert 解释说,当高层模块依赖于低层模块
这个问题在这里已经有了答案: What is the difference between px, dip, dp, and sp? (32 个答案) 关闭 9 年前。 我目前正在使用以下 Imag
既然 dip 代表“设备独立像素”,那么是否有适用于每个 android 设备的标准 dip 数量? 示例:如果 hdpi 设备具有 X dp/width 和 Y dp/height,那么 ldpi
我想问一下 Genotypes 和 Individual 类的实现是否违反了依赖倒置原则?如果是,如何解决? 代码如下: public interface IGenotype { //some
IoC = 控制反转 DIP = 依赖倒置原则(S.O.L.I.D. 中的 D) IoC == DIP?我认为是的,是真的。 构建软件的世界已经这么乱了,为什么要说同样的话那么多话? (我知道DI(依
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be
我在看 dp, dip, px, sp measurements ,但我仍然有一些关于 dp/dpi vs ppi vs px vs inch 的问题。我无法比较它们……一英寸是最大的吗? 他们说 1
我正在构建 Windows 应用商店应用程序。我正在使用 Windows 8 和 WPF 以及 Visual Studio .net 2012。 此应用程序的 UI 应可扩展到不同的屏幕。我创建了一个
如何修改此类以遵循 DIP(依赖倒置原则),以便删除构造函数中的两个 ArrayList 依赖项?接口(interface)应该如何? 令我困惑的一件事是新引用指向 ArrayList不仅仅是类的构造
有没有办法以编程方式将 dip 转换为 px,因为我需要在 webview 中设置字体大小,但我认为 dip 不会很好。 最佳答案 来自 Overview of Screens Support 的密度
过去几个小时我一直在努力寻找解决这个问题的方法,但我似乎找不到任何东西。 我正在使用 LibGDX 为 Android 开发游戏。在模拟器中,游戏看起来不错,但是当我在手机上玩时,一切都不一样而且放错
我是一名优秀的程序员,十分优秀!