小编dro*_*rco的帖子

c ++用于在std :: cout中打印新行的有趣语法

以下代码打印一个正方形'*'字符:

int m = 5; int n=5;
for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++)
        std::cout << "*" << " \n"[j==5];
Run Code Online (Sandbox Code Playgroud)

输出:

* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
Run Code Online (Sandbox Code Playgroud)

我的问题是关于这个 " \n"[j==5]部分.有谁知道这个语法究竟是如何工作的?

c++ arrays pointer-arithmetic

19
推荐指数
1
解决办法
994
查看次数

图像处理 - 使用FFT放大图像(Matlab代码)

我正在尝试编写一个简单的matlab代码,用于放大图像fft.我尝试了已知的图像扩展算法,它计算图像的傅里叶变换,用零填充它并计算填充图像的逆傅立叶.然而,逆傅立叶变换返回包含复数的图像.因此,当我尝试使用显示结果时imshow,我收到以下错误:

Warning: Displaying real part of complex input.

你知道我做错了什么吗?

我的代码:

im = imread('fruit.jpg');
imFFT = fft2(im);
bigger = padarray(imFFT,[10,10]);
imEnlarged = ifft2(bigger);
Run Code Online (Sandbox Code Playgroud)

谢谢!

matlab fft image-processing image-enlarge

3
推荐指数
1
解决办法
1928
查看次数

'random_shuffle':不是'std'错误的成员

我正在尝试使用std :: random_shuffle,并获得编译错误.

我的编译器是v140(Visual Studio 2015),我在x64,Release模式下工作.

我的代码:

#include <random>
#include <algorithm>
void foo()
{
    std::vector<int> v;
    std::random_shuffle(v.begin(), v.end());
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

error C2039: 'random_shuffle': is not a member of 'std'
error C3861: 'random_shuffle': identifier not found
Run Code Online (Sandbox Code Playgroud)
  • 不知道问题是什么?

谢谢!

c++ std

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

MATLAB-mices灰度图像中的分割,对阴影不变

经过2到3天的搜索,我仍然没有找到解决问题的方法.

我想创建一个没有阴影的鼠标分段.问题是如果我设法移除阴影我也删除尾部和脚部这是一个问题.阴影来自鼠标所在的竞技场墙壁.

我想从灰度图像中删除阴影,但我不知道如何做到这一点.首先,我删除了图像的背景,并获得了以下图片.

在此输入图像描述

edit1:谢谢你的答案,当阴影没有碰到鼠标时效果很好.这就是我得到的结果:

分段鼠标

从这张原始图片:

原始图像

我从tif文件中提取每个帧并为每个帧应用代码.这是我使用的代码:

for k=1:1000

    %reads image
    I = imread('souris3.tif',k);

    %first stage: perform thesholding and fill holes

    seg = I >20000;
    seg = imfill(seg,'holes');

    %fixes the missing tail problem
    %extract edges, and add them to the segmentation.
    edges =  edge(I);
    seg = seg | edges;

    %fill holes (again)
    seg = imfill(seg,'holes'); 

    %find all the connected components
    CC = bwconncomp(seg,8);

    %keeps only the biggest CC
    numPixels = cellfun(@numel,CC.PixelIdxList);
    [biggest,idx] = max(numPixels);
    seg = zeros(size(edges));
    seg(CC.PixelIdxList{idx}) = 1;

    imshow(seg); …
Run Code Online (Sandbox Code Playgroud)

matlab image-processing shadow image-segmentation

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

计算bool属性为真的实例数 - C#

我有一个IEnumerable的某个具有bool属性的对象.我想计算在紧凑(在代码行方面)和可读方式中此属性设置为true的对象数量.

为了演示它,我创建了一个带有布尔属性'InnerProperty'的类'Obj'.静态函数'CountInner'实现上面定义的逻辑.我怎样才能更紧凑地实现它?

public class Obj
{
    private bool InnerProperty { get; set; } = false;

    public static int CountInner(IEnumerable<Obj> list)
    {
        var count = 0;
        foreach (var l in list)
        {
            if (l.InnerProperty)
            {
                count++;
            }
        }
        return count;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# linq ienumerable

0
推荐指数
1
解决办法
625
查看次数