小编use*_*485的帖子

删除char*进行字节转换

我每次读取文件时都尝试使用不同的长度字节读取二进制文件.获得值后,我尝试将字节转换为char*.

我创建了一个简单的代码如下:

//This code is compiled in Visual Studio 2010
typedef unsigned char BYTE;

BYTE *s;
s = new BYTE[3]; // I read 2 bytes from the file, I add +1 to reserve NULL
s[0]= 'a'; s[1]='b';s[2]=NULL;  //just an example I get 2 bytes from file

char* b;
b = new char(sizeof(s));
strcpy(b,(char*)s);
s[0]='x';
cout << s <<"--"<< b<< "--"<< endl;
delete[] s;
delete[]  b;
cin.get();
return 0;`
Run Code Online (Sandbox Code Playgroud)

但是,代码会生成错误"Heap Corruption Detected".当我删除该行时,delete[] b;该程序运行良好.但是我不确定下次是否会出现问题.请问有人解释一下吗?如果我删除会导致内存泄漏delete[] b;吗?有什么建议来改进我的代码吗?

c c++

4
推荐指数
1
解决办法
253
查看次数

Matlab中的图像变形

我想在MATLAB中使用数学形态学函数来找到can.png图像的边界.输入图像是:

在此输入图像描述

我想得到一个边界,如:

在此输入图像描述

我尝试使用不同的组合和参数使用strel,imerode,imdilate,但结果不够好(远远超出预期)

我的一个试用代码是:

a = imread ('can.png');
b = im2bw(a);

SE = strel('rectangle', [10 50 ]) ;
i2 = imdilate(b,SE);

figure(1); imshow(i2);

p = ones(4);
c = b - imerode(b,p);

figure(2); imshow(c);
Run Code Online (Sandbox Code Playgroud)

输出是:

在此输入图像描述

任何身体可以帮助我,如何创建预期的图像(罐头的边界很薄的黑色背景,拜托?非常感谢你.

matlab image-processing edge-detection

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

标签 统计

c ×1

c++ ×1

edge-detection ×1

image-processing ×1

matlab ×1