小编dmi*_*dop的帖子

将两个Mat图像合并为一个

我有个问题.我有一张图片.然后我必须将图像分成两个相等的部分.我这样做(代码编译,一切都很好):

Mat image_temp1 = image(Rect(0, 0, image.cols, image.rows/2)).clone();
Mat image_temp2 = image(Rect(0, image.rows/2, image.cols, image.rows/2)).clone();
Run Code Online (Sandbox Code Playgroud)

然后我必须独立地改变每个部分,最后合并为一个.我不知道如何正确地做到这一点.我应该如何将这两部分图像合并为一个图像?
示例:http://i.stack.imgur.com/CLDK7.jpg

c c++ opencv

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

如何正确地将 cv::Mat 转换为 CV_8UC1?

我在谷歌上搜索了很多关于这个问题,但我无法解决它。
所以,我应该将 16 位 3 通道图像转换为 8 位 1 通道图像。我在cv::inpaint函数中使用这个二进制图像。
maskBGR,只有两种颜色 - 黑色和白色,是我的源图像。
所以,有代码:

Mat mask;
maskBGR.convertTo(mask, CV_8UC1);
inpaint(image, mask, dst, 8, cv::INPAINT_TELEA);
Run Code Online (Sandbox Code Playgroud)

之后我的程序崩溃了。这是在命令行中写的:

OpenCV Error: Unsupported format or combination of formats (The mask must be
8-bit 1-channel image) in unknown function, file ..\..\..\src\opencv\modules\
photo\src\inpaint.cpp, line 747
Run Code Online (Sandbox Code Playgroud)

在 inpaint.cpp 中,第 747 行:

if( CV_MAT_TYPE(inpaint_mask->type != CV_8UC1 )
   CV_ERROR( CV_StsUnsupportedFormat, "The mask must be 8-bit 1-channel image" );
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

c++ opencv image colors image-processing

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

如何在c#中显示接近零的数字?

我有个问题.我有一个双倍的数字,如0.00000001.然后我应该将它转换为String并将其放在文本框中(Convert.ToString(0.00000001)).但这个数字显示为1E-08.Math.Round在这里不起作用.我应该显示这个数字,如0.00000(至少),而不仅仅是0.

c# string double

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

标签 统计

c++ ×2

opencv ×2

c ×1

c# ×1

colors ×1

double ×1

image ×1

image-processing ×1

string ×1