小编Mát*_*ond的帖子

在Qt中显示图像以适合标签尺寸

我已经尝试了几种在表单上显示图像的方法,但它们都没有按照我的意愿运行.

我读过许多地方,最简单的方法是创建标签并使用它来显示图像.我有一个标签,其大小由布局指定,但如果我用像素图加载图像,标签将调整大小为图像的大小.如果我使用img标签作为text或css background属性,它将不会显示整个图像.我想要做的是加载图像并适合标签,而不是更改标签的大小,但是当我调整窗口大小时,以及调整标签大小时,图像也应调整大小以使其始终适合进去.

如果唯一的方法是获取标签的大小,并调整像素图以适应它,并处理调整大小事件(信号),我怎么能调整像素图的大小?我希望我不需要将整个事物保存到QImage中并且每次都从它创建一个像素图.

另外,我该如何居中呢?如果它不能同时适合宽度和高度,我希望较小的尺寸居中.

哦,我不想使用滑块来处理溢出.

qt image autoresize

28
推荐指数
4
解决办法
5万
查看次数

SURF的度量标准

我正在为SURF搜索可用的指标.就像一个图像在一个尺度上与另一个图像匹配时,假设0到1,其中0表示没有相似性,1表示相同的图像.

SURF提供以下数据:

  • 查询图像中的兴趣点(及其描述符)(集Q)
  • 目标图像中的兴趣点(及其描述符)(集合T)
  • 可以从上面的两个集合中创建使用最近邻居算法对

到目前为止,我正在尝试一些东西,但似乎没有任何效果:

  1. 使用不同集合的大小的度量:d = N/min(大小(Q),大小(T))其中N是匹配的兴趣点的数量.这给出了非常相似的图像相当低的评级,例如0.32即使从Q中的约600和T中的200匹配70个兴趣点.我认为70是非常好的结果.我正在考虑使用一些对数缩放,所以只有非常低的数字会得到低的结果,但似乎无法找到正确的方程式.随着d = log(9*d0+1)我得到的0.59的结果这是非常好的,但是,它仍然有种破坏SURF的力量.

  2. 使用成对距离的度量标准:我做了一些事情,比如找到K最佳匹配并添加它们的距离.两个图像相似的距离最小.这个问题是我不知道兴趣点描述符元素的最大值和最小值是什么,从中计算了距离,因此我只能相对地找到结果(来自许多最好的输入).正如我所说,我希望将度量标准精确地放在0和1之间.我需要将其与其他图像指标进行比较.

这两个问题的最大问题是排除另一个问题.一个没有考虑匹配的数量,另一个没有考虑匹配之间的距离.我迷路了.

编辑:对于第一个,log(x*10 ^ k)/ k的等式,其中k是3或4,大多数时候给出一个很好的结果,min不好,它可以使d大于1 in一些罕见的情况,没有它的小结果又回来了.

algorithm math image-processing computer-vision surf

8
推荐指数
1
解决办法
1347
查看次数

阻止调试器进入函数

我正在寻找一种方法来阻止Visual Studio调试器在按下F11时进入某些类和函数.或阻止某些文件,以便IDE不会打开它们,只是步骤低谷(除非出现异常).

我知道这听起来有点愚蠢,但是我使用智能指针和其他辅助类,许多重载操作符,简单表达式由许多函数调用组成,它们在优化时消失,因此它不是速度问题,而是调试问题,打开和关闭许多文件,经历许多功能,意外地离开目标代码等等.

这是我正在谈论的一个例子:

stepToThisFunction(objectOfIgnoreClass->ignoreFunction());
Run Code Online (Sandbox Code Playgroud)

当调试器在此行上时,按F11应该只进入stepToThisFunction,单步执行ignoreFunction()或可能是任何函数调用objectOfIgnoreClass.

一些本机相当于托管DebuggerStepThrough.我不想使用CLI.只是在函数/类之前写的关键字或宏.我也找到了一些东西,一些注册表键修改,但这似乎不是我正在寻找的东西,或者我不理解它的机制(我甚至不理解注册表键与此有什么关系) .此外,"放置断点"和"运行到光标"是不被接受的解决方案.

c++ debugging visual-studio-2010 visual-studio visual-c++

6
推荐指数
1
解决办法
1297
查看次数

工厂中的依赖注入

我是DI的新手,但我真的很想尝试使用它.

有些事情我不明白.这是一个简单的工厂伪代码,我使用了很多.

class PageFactory {
   public function __construct(/* dependency list */) {
      ... //save reference to the dependencies
   }

   public function createPage($pagename) {
       switch ($pagename) {
           case HomePage::name:
               return new HomePage(/* dependency list */);
           case ContactPage::name:
               return new ContactPage(/* dependency list */);
           ...
           default:
               return null;
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

它有一个非常简单的逻辑,它选择基于字符串的实现实例.它非常有用,因为我可以在以后选择我需要的页面,并且只会创建一个页面.

我将如何重写此代码,因此我的页面实例将由依赖项容器创建,因此我不需要处理工厂及其创建的页面的依赖项?

我看到的唯一解决方案是制作我想要使用的容器,工厂的依赖项,并在工厂内调用它.我有很多问题.

首先,我不想将容器连接到我的应用程序,以及它拥有的每个工厂.

第二,我最大的问题是,对容器的调用非常麻烦,它是字符串式的(即$ container-> get('Foo');).我想尽可能少地使用它.只有一次可能.

编辑:

我不想写一个DI容器.我想使用现有的.我的问题是关于使用情况.我将如何使用DI容器代替或在上述工厂中使用DI容器,同时保持实例选择的逻辑.

编辑2:

我开始使用Dice作为DI容器,因为它很轻,并且知道我需要的一切.如果我可以在一个地方使用它并构建整个应用程序,我更愿意.为此,我需要一种方法以某种方式摆脱这些工厂,或以某种方式修改它以使这些页面像依赖项一样,因此DI容器将为它们提供实例.

编辑3:

是的,我需要这个用于测试目的.我也是测试的新手,但到目前为止我非常喜欢它.

这些页面是MVC框架调用控制器的.但是我检查的所有MVC框架都没有让它们的控制器可测试,因为它们会自动创建它们的实例.并且因为它们是由系统创建的,所以用户无法自定义其构造函数参数.

有一种简单的方法可以检查任何框架.我只是查看我应该在该特定框架中的控制器中使用数据库的方式.大多数框架都是程序性的,或者使用一些服务定位器,无论哪种方式,它们都是从公共范围获取它们的依赖关系,这是我不想做的事情.这就是我没有自动化控制器实例化的原因.缺点是我现在拥有这些奇怪的工厂,它们具有很多依赖性.我想将此任务替换为DI容器.

大多数框架都实现了自己的测试机制,这更像是功能测试,而不是单元测试,但我也不想这样做.

php oop factory dependency-injection

5
推荐指数
1
解决办法
1723
查看次数

带有可自定义内容的Windows 10 UWP UserControl

我想在Windows 10 UWP中使用更改内容进行用户控制.

我知道如何进行简单的用户控件,但我需要一个像这样的用户控件:

<Controls:UserControl x:Name="Usercontrol1" Margin="0,10,0,0" Grid.Row="1">
    <Controls:UserControl.MainContent>
        <Grid x:Name="Content">
            //Items are here
        </Grid>
    </Controls:UserControl.MainContent>
</Controls:UserControl>
Run Code Online (Sandbox Code Playgroud)

我的用户控件中的Grid是空的,我想在每个页面中为此网格提供不同的项目.我想要一种方法在页面中为我的用户控件设置网格,然后将此网格添加到我的用户控件而不是那个空网格.

有没有办法做到这一点?

c# uwp

5
推荐指数
1
解决办法
3824
查看次数

pdf下载html2pdf

我正在使用html2pdf类生成pdf.在我的问题中它为html代码生成pdf但它没有给出对话框选项来下载该pdf.请帮助我的cose跟随.

<?php
ob_start();
include(dirname(__FILE__).'/res/pdf_demo.php');
$content = ob_get_clean();

// conversion HTML => PDF
require_once(dirname(__FILE__).'/../html2pdf.class.php');
try
{
    $html2pdf = new HTML2PDF('P','A4', 'fr', false, 'ISO-8859-15');
    $html2pdf->pdf->SetDisplayMode('fullpage');
    $html2pdf->writeHTML($content, isset($_GET['vuehtml']));
    $html2pdf->Output('pdf_demo.pdf'); 
}
catch(HTML2PDF_exception $e) { echo $e; }
?>
Run Code Online (Sandbox Code Playgroud)

php pdf download html2pdf

2
推荐指数
2
解决办法
2万
查看次数