小编Cri*_*ngo的帖子

Doxygen是否可以从生成的XML中排除未记录的函数?

我想仅为具有Doxygen注释的代码生成文档.我创建了一个Doxyfilevia Doxygen版本1.8.9.1并将其配置为仅输出XML并隐藏所有未记录的代码:

GENERATE_HTML          = NO
GENERATE_LATEX         = NO
GENERATE_XML           = YES
HIDE_UNDOC_MEMBERS     = YES
HIDE_UNDOC_CLASSES     = YES
Run Code Online (Sandbox Code Playgroud)

之后我创建了一个简单的C头test.h文件,其中包含一个文档和一个未记录的函数声明:

void foo(int a);

/**
 * "bar" function description
 * @param b sample param
 */
void bar(int b);
Run Code Online (Sandbox Code Playgroud)

通过执行doxygen我期望的文档仅bar包含在生成的XML中.不幸的是,生成了两个函数的文档.是否可以仅为具有Doxygen注释的代码生成文档?或者Doxygen总是包含XML输出中的所有内容而不管设置如何?

doxygen

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

为什么C++标准指定有符号整数在具有混合签名的二进制操作中被转换为无符号?

C和C++标准规定,在相同等级的有符号和无符号整数之间的二进制运算中,有符号整数被转换为无符号整数.由此引起的SO有很多问题......让我们称它为奇怪的行为:无符号转换为签名转换,C++隐式转换(有符号+无符号),警告 - 有符号和无符号整数表达式之间的比较,%(mod)与混合符号

但是这些都没有给出任何理由,为什么标准是这样的,而不是倾向于签署的注册.我确实找到了一位自封的大师,他说这是明显正确的做法,但他也没有给出推理:http://embeddedgurus.com/stack-overflow/2009/08/a-tutorial-on- signed-and-unsigned-integers /.

查看我自己的代码,无论我将有符号和无符号整数组合在一起,我总是需要从unsigned转换为signed.有些地方没关系,但我没有找到一个代码示例,将有符号整数转换为unsigned是有意义的.

什么情况下铸造到无符号的正确的事情呢?为什么标准是这样的?

c c++ casting

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

MacOSX:哪些动态库通过二进制链接?

我无法弄清楚为什么我的二进制文件无法加载。它是MATLAB加载的dylib(MEX文件),并链接到位于不同位置的许多dylib。MATLAB告诉我它无法加载MEX文件,但是我无法弄清它找不到哪个依赖项。

有人对如何调试这样的东西有任何建议吗?

在Linux上,ldd是调试此问题的理想工具。人们一直说otool -LMacOS与Linux等效ldd,但这不是事实。ldd实际上会查找这些库,并告诉您可以找到哪些库以及在何处找到它们。otool -L仅告诉您需要链接的库。无需检查它们是否存在。它甚至没有告诉您使用库时在哪里搜索库@rpath

otool -l(小写的L)为您提供了“加载命令”的转储,您可以在LC_RPATH其中看到这些命令,这些命令确定了在何处@rpath搜索库。但是这些无法向我解释未找到哪个依赖项。

macos rpath otool ldd

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

在MATLAB中将矩形对角线添加到矩阵中

假设我在MATLAB中有一个A维度矩阵Nx(N-1),例如

N=5;
A=[1  2  3  4;
   5  6  7  8;
   9  10 11 12;
   13 14 15 16;
   17 18 19 20 ];
Run Code Online (Sandbox Code Playgroud)

我想通过添加零对角线转换ANxN矩阵B,即

B=[ 0  1   2   3   4;
    5  0   6   7   8;
    9  10  0   11  12;
    13 14  15  0   16;
    17 18  19  20  0];
Run Code Online (Sandbox Code Playgroud)

这段代码做我想要的:

B_temp = zeros(N,N); 
B_temp(1,:) = [0 A(1,:)];
B_temp(N,:) = [A(N,:) 0];
for j=2:N-1
    B_temp(j,:)= [A(j,1:j-1) 0 A(j,j:end)];
end
B …
Run Code Online (Sandbox Code Playgroud)

matlab matrix vectorization

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

需要用Python和OpenCV制作一张卡通漫画版的图片

我正在尝试制作一个能使任何图像看起来像卡通漫画的功能.到目前为止,这是我的代码:

import numpy
import cv2

__author__ = "Michael Beyeler"
__license__ = "GNU GPL 3.0 or later"

class Cartoonizer:

    def __init__(self):
        self.numDownSamples = 1
        self.numBilateralFilters = 7

    def render(self, img_rgb):

        # downsample image using Gaussian pyramid
        img_color = img_rgb
        for _ in range(self.numDownSamples):
            img_color = cv2.pyrDown(img_color)
        # repeatedly apply small bilateral filter instead of applying
        # one large filter
        for _ in range(self.numBilateralFilters):
            img_color = cv2.bilateralFilter(img_color, 9, 9, 7)
        # upsample image to original size
        for _ in range(self.numDownSamples):
            img_color = …
Run Code Online (Sandbox Code Playgroud)

python opencv image-processing python-3.x

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

去除图像

我试图在Python中对图像进行去模糊,但遇到了一些问题.这是我尝试过的,但请记住,我不是这个主题的专家.根据我的理解,如果你知道点扩散函数,你应该能够通过执行反卷积来简单地对图像进行去模糊.然而,这似乎不起作用,我不知道我是在做一些愚蠢的事情,还是我不理解事情.在Mark Newman的计算物理学书籍(使用Python)中,他在问题7.9中触及了这个主题.在这个问题中,他提供了一个他使用高斯点扩散函数(psf)故意模糊的图像,问题的目的是使用高斯对图像进行去模糊.这是通过将模糊图像的2D FFT除以psf的2D FFT然后进行逆变换来实现的.这工作得相当好.

为了解决这个问题,我想对使用故意失焦的相机拍摄的真实图像进行去模糊.所以我设置了一个相机并拍了两组照片.第一组照片是焦点.第一个是在一个完全黑暗的房间里的一个非常小的LED灯,第二个是一张纸上有文字(使用闪光灯).然后,在不改变任何距离或任何东西的情况下,我改变了相机上的焦点设置,使文本非常失焦.然后,我使用闪光灯拍摄了文本照片,然后拍摄了第二张LED照片(没有闪光灯).这是模糊的图像.

模糊的文字

模糊点光源

现在,根据我的理解,模糊点光源的图像应该是点扩散函数,因此我应该能够用它来去模糊我的图像.问题在于,当我这样做时,我得到一个看起来像噪音的图像.经过一些研究后,使用反卷积技术时噪声似乎是个大问题.然而,鉴于我已经测量了我认为确切的点扩散函数,我很惊讶噪声在这里是一个问题.

我尝试过的一件事就是用1或者epsilon替换psf变换中的小值(小于epsilon),我尝试使用epsilon的大范围值.这产生的图像不仅仅是噪点,而且也不是图像的模糊版本; 它看起来像原始(非模糊)图像的奇怪,模糊版本.这是我的程序中的图像(您可以忽略sigma的值,该程序中未使用该值).

在此输入图像描述

我相信我正在处理一个噪音问题,但我不知道为什么,我不知道该怎么办.任何建议都会非常感激(请记住,我不是这方面的专家).

请注意,我故意不发布代码,因为我认为这在某种程度上是无关紧要的.但如果有人认为有用,我会很高兴这样做.我不认为这是一个编程问题,因为我使用了相同的技术,并且当我具有已知的点扩散函数时(例如当我通过FFT的out-of划分原始对焦图像的FFT时)它工作正常 - 聚焦图像然后逆变换).我只是不明白为什么我似乎无法使用我的实验测量点扩散函数.

python image-processing deconvolution

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

在Matlab中预分配数组?

我使用一个简单的for循环来裁剪大量图像,然后将它们存储在单元格数组中.我一直收到消息:

变量croppedSag似乎在每次循环迭代时改变大小.考虑预先分配速度.

我在MATLAB编写代码之前已经多次看过这个.我总是忽略它,并且好奇有多少预先分配将增加运行时间,如果我有10,000个图像或更大的数字?

另外,我已阅读有关在文档中预分配的内容,并说它zeros()可用于此目的.我如何将其用于下面的代码?

croppedSag = {};
for i = 1:sagNum
    croppedSag{end+1} = imcrop(SagArray{i},rect);
end
Run Code Online (Sandbox Code Playgroud)

我没有完全按照文档中的示例进行操作.

arrays matlab memory-management pre-allocation

7
推荐指数
1
解决办法
7979
查看次数

用于斑点检测或边缘检测的高斯拉普拉斯算子?

提供以下代码(被要求删除链接).但我想知道它是如何工作的.如果这被认为是边缘检测或斑点检测,我很困惑,因为维基百科将高斯拉普拉斯(LoG)列为斑点检测.

此外,有人可以解释并提供更深层次的解释,说明为什么计算绝对值以及focus_stack()函数中发生了什么?

#   Compute the gradient map of the image
def doLap(image):

    # YOU SHOULD TUNE THESE VALUES TO SUIT YOUR NEEDS
    kernel_size = 5         # Size of the laplacian window
    blur_size = 5           # How big of a kernal to use for the gaussian blur
                            # Generally, keeping these two values the same or very close works well
                            # Also, odd numbers, please...

    blurred = cv2.GaussianBlur(image, (blur_size,blur_size), 0)
    return cv2.Laplacian(blurred, cv2.CV_64F, ksize=kernel_size)

#
#   This …
Run Code Online (Sandbox Code Playgroud)

python opencv image-processing computer-vision laplacianofgaussian

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

Tensorflow 膨胀的行为与形态膨胀不同

如以下代码所示,tensorflowtf.nn.dilation2D函数的行为不像传统的扩张运算符

import tensorflow as tf
tf.InteractiveSession()
A = [[0, 0, 0, 0, 0, 0, 0],
     [0, 0, 0, 0, 1, 0, 0],
     [0, 0, 0, 1, 1, 1, 0],
     [0, 0, 0, 0, 1, 0, 0],
     [0, 0, 0, 0, 0, 0, 0],
     [0, 0, 0, 0, 0, 0, 0]]
kernel = tf.ones((3,3,1))
input4D = tf.cast(tf.expand_dims(tf.expand_dims(A, -1), 0), tf.float32)
output4D = tf.nn.dilation2d(input4D, filter=kernel, strides=(1,1,1,1), rates=(1,1,1,1), padding="SAME")
print(tf.cast(output4D[0,:,:,0], tf.int32).eval())
Run Code Online (Sandbox Code Playgroud)

返回以下张量:

array([[1, 1, 1, 2, 2, …
Run Code Online (Sandbox Code Playgroud)

python image-processing mathematical-morphology image-morphology tensorflow

7
推荐指数
1
解决办法
2154
查看次数

如何在MATLAB中更改浮点运算的舍入模式?

我想更改MATLAB中浮点运算的舍入模式。根据IEEE 754-2008,有五种舍入策略:

  • 四舍五入到最接近的关系
  • 四舍五入到最接近,领带从零开始
  • 向零舍入
  • 向上舍入(向正无穷大)
  • 向下舍入(向负无穷大)

MATLAB是否支持这5种策略?如何在MATLAB中更改浮点运算的舍入模式?

floating-point matlab rounding

7
推荐指数
1
解决办法
217
查看次数