必威体育Betway必威体育官网
当前位置:首页 > IT技术

copyTo 使用方法

时间:2019-11-05 22:11:06来源:IT技术作者:seo实验室小编阅读:75次「手机版」
 

copyto

原地址:https://blog.csdn.net/qq_36930777/article/details/78256739

OpenCV中image.copyto()有两种形式:

1、image.copyTo(imageROI),作用是把image的内容粘贴到imageROI;

2、image.copyTo(imageROI,mask),作用是把mask和image重叠传递给imageRoi

一个是彩色一个为黑白图 解析:因为第二幅的edge的边缘图与原图进行相交,得到彩色图像

3.

如果你就想复制一个字符串到另一个字符串,可以使用string的静态方法Copy

例如:

string a = "hello";

string b = "world";

b = string.Copy(a);

如果想使用CopyTo()这个方法的话是这样的

void CopyTo(

int sourceIndex,//从源字符串第几个字符开始copy,第一个为0

char[] destination,//目标字符串的char数组

int destinationIndex,//从目标字符串char数组的第几个位置开始放

int count//一共复制多少个字符

)

例如:

string dest = "hello world";

string source = "Goodbye China";

char[] destArray = dest.ToCharArray();//将dest变成字符数组

source.CopyTo(8, destArray, 6, 5);//从source的第8个字符起复制5个字符并从destArray的第6个位置开始放

dest = new string(destArray);//这时dest为"Hello China"

  1. //--------------------------------------【程序说明】-------------------------------------------

  2. // 程序说明:《OpenCV3编程入门》OpenCV3版书本配套示例程序56

  3. // 程序描述:canny函数用法示例

  4. // 开发测试所用操作系统windows 7 64bit

  5. // 开发测试所用IDE版本:Visual Studio 2010

  6. // 开发测试所用OpenCV版本: 3.0 beta

  7. // 2014年11月 Created by @浅墨_毛星云

  8. // 2014年12月 Revised by @浅墨_毛星云

  9. //------------------------------------------------------------------------------------------------

  10. //---------------------------------【头文件、命名空间包含部分】----------------------------

  11. // 描述:包含程序所使用的头文件和命名空间

  12. //------------------------------------------------------------------------------------------------

  13. #include <opencv2/opencv.hpp>

  14. #include<opencv2/highgui/highgui.hpp>

  15. #include<opencv2/imgproc/imgproc.hpp>

  16. using namespace cv;

  17. //-----------------------------------【main( )函数】-------------------------------------------

  18. // 描述:控制台应用程序的入口函数,我们的程序从这里开始

  19. //-----------------------------------------------------------------------------------------------

  20. int main()

  21. {

  22. //载入原始图

  23. Mat srcImage = imread("1.jpg"); //工程目录下应该有一张名为1.jpg的素材图

  24. Mat srcImage1 = srcImage.clone();

  25. //显示原始图

  26. imshow("【原始图】Canny边缘检测", srcImage);

  27. //----------------------------------------------------------------------------------

  28. // 一、最简单的canny用法,拿到原图后直接用。

  29. // 注意:此方法在OpenCV2中可用,在OpenCV3中已失效

  30. //----------------------------------------------------------------------------------

  31. //Canny( srcImage, srcImage, 150, 100,3 );

  32. //imshow("【效果图】Canny边缘检测", srcImage);

  33. //----------------------------------------------------------------------------------

  34. // 二、高阶的canny用法,转成灰度图,降噪,用canny,最后将得到的边缘作为掩码,拷贝原图到效果图上,得到彩色的边缘图

  35. //----------------------------------------------------------------------------------

  36. Mat dstImage, edge, grayImage, dstImage1, dstImage2;

  37. // 【1】创建与src同类型和大小的矩阵(dst)

  38. dstImage.create(srcImage1.size(), srcImage1.type());

  39. // 【2】将原图像转换为灰度图像

  40. cvtcolor(srcImage1, grayImage, COLOR_BGR2GRAY);

  41. // 【3】先用使用 3x3内核来降噪

  42. blur(grayImage, edge, Size(3, 3));

  43. // 【4】运行Canny算子

  44. Canny(edge, edge, 3, 9, 3);

  45. //【5】将g_dstImage内的所有元素设置为0

  46. dstImage = Scalar::all(0);

  47. //【6】使用Canny算子输出的边缘图g_cannyDetectedEdges作为掩码,来将原图g_srcImage拷到目标图g_dstImage中

  48. edge.copyTo(dstImage);

  49. //【7】显示效果图

  50. imshow("edge.copyTo(dstImage)", dstImage);

  51. srcImage1.copyTo(dstImage1, edge);

  52. imshow("srcImage1.copyTo(dstImage1, edge)", dstImage1);

  53. waitKey(0);

  54. return 0;

  55. }

                                <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-cd6c485e8b.css">
                                    <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-cd6c485e8b.css">
            <p class="htmledit_views" id="content_views">

openCV中image.copyTo()有两种形式:

1、image.copyTo(imageROI),作用是把image的内容粘贴到imageROI;

2、image.copyTo(imageROI,mask),作用是把mask和image重叠传递给imageRoi

一个是彩色一个为黑白图 解析:因为第二幅的edge的边缘图与原图进行相交,得到彩色图像

3.

如果你就想复制一个字符串到另一个字符串,可以使用string的静态方法Copy

例如:

string a = "hello";

string b = "world";

b = string.Copy(a);

如果想使用CopyTo()这个方法的话是这样的

void CopyTo(

int sourceIndex,//从源字符串第几个字符开始copy,第一个为0

char[] destination,//目标字符串的char数组

int destinationIndex,//从目标字符串char数组的第几个位置开始放

int count//一共复制多少个字符

)

例如:

string dest = "Hello world";

string source = "Goodbye China";

char[] destArray = dest.ToCharArray();//将dest变成字符数组

source.CopyTo(8, destArray, 6, 5);//从source的第8个字符起复制5个字符并从destArray的第6个位置开始放

dest = new string(destArray);//这时dest为"Hello China"

  1. //--------------------------------------【程序说明】-------------------------------------------

  2. // 程序说明:《OpenCV3编程入门》OpenCV3版书本配套示例程序56

  3. // 程序描述:canny函数用法示例

  4. // 开发测试所用操作系统: Windows 7 64bit

  5. // 开发测试所用IDE版本:Visual Studio 2010

  6. // 开发测试所用OpenCV版本: 3.0 beta

  7. // 2014年11月 Created by @浅墨_毛星云

  8. // 2014年12月 Revised by @浅墨_毛星云

  9. //------------------------------------------------------------------------------------------------

  10. //---------------------------------【头文件、命名空间包含部分】----------------------------

  11. // 描述:包含程序所使用的头文件和命名空间

  12. //------------------------------------------------------------------------------------------------

  13. #include <opencv2/opencv.hpp>

  14. #include<opencv2/highgui/highgui.hpp>

  15. #include<opencv2/imgproc/imgproc.hpp>

  16. using namespace cv;

  17. //-----------------------------------【main( )函数】-------------------------------------------

  18. // 描述:控制台应用程序的入口函数,我们的程序从这里开始

  19. //-----------------------------------------------------------------------------------------------

  20. int main()

  21. {

  22. //载入原始图

  23. Mat srcImage = imread("1.jpg"); //工程目录下应该有一张名为1.jpg的素材图

  24. Mat srcImage1 = srcImage.clone();

  25. //显示原始图

  26. imshow("【原始图】Canny边缘检测", srcImage);

  27. //----------------------------------------------------------------------------------

  28. // 一、最简单的canny用法,拿到原图后直接用。

  29. // 注意:此方法在OpenCV2中可用,在OpenCV3中已失效

  30. //----------------------------------------------------------------------------------

  31. //Canny( srcImage, srcImage, 150, 100,3 );

  32. //imshow("【效果图】Canny边缘检测", srcImage);

  33. //----------------------------------------------------------------------------------

  34. // 二、高阶的canny用法,转成灰度图,降噪,用canny,最后将得到的边缘作为掩码,拷贝原图到效果图上,得到彩色的边缘图

  35. //----------------------------------------------------------------------------------

  36. Mat dstImage, edge, grayImage, dstImage1, dstImage2;

  37. // 【1】创建与src同类型和大小的矩阵(dst)

  38. dstImage.create(srcImage1.size(), srcImage1.type());

  39. // 【2】将原图像转换为灰度图像

  40. cvtColor(srcImage1, grayImage, COLOR_BGR2GRAY);

  41. // 【3】先用使用 3x3内核来降噪

  42. blur(grayImage, edge, Size(3, 3));

  43. // 【4】运行Canny算子

  44. Canny(edge, edge, 3, 9, 3);

  45. //【5】将g_dstImage内的所有元素设置为0

  46. dstImage = Scalar::all(0);

  47. //【6】使用Canny算子输出的边缘图g_cannyDetectedEdges作为掩码,来将原图g_srcImage拷到目标图g_dstImage中

  48. edge.copyTo(dstImage);

  49. //【7】显示效果图

  50. imshow("edge.copyTo(dstImage)", dstImage);

  51. srcImage1.copyTo(dstImage1, edge);

  52. imshow("srcImage1.copyTo(dstImage1, edge)", dstImage1);

  53. waitKey(0);

  54. return 0;

  55. }

文章最后发布于: 2019-07-17 19:25:34

相关阅读

OpenCV学习笔记(8)image.copyTo()

OpenCV中image.copyTo()有两种形式:1、image.copyTo(imageROI),作用是把image的内容粘贴到imageROI;2、image.copyTo(imageROI,mask),

OpenCV3之——copyTo()函数的使用方法

在Mat矩阵类的成员函数中copyTo(roi , mask)函数是非常有用的一个函数,尤其是后面的mask可以实现蒙版的功能,我们用几个实例来说明

分享到:

栏目导航

推荐阅读

热门阅读