当前位置: 首页 > news >正文

创建网站需要哪些工作做网站需要准备什么

创建网站需要哪些工作,做网站需要准备什么,宁夏住房和建设厅网站,广州什么地方好玩图像复制 共享数据, 使用 new Mat(srcMat, ...) 和 newMatsrcMat 生成新的Mat都和原Mat共享数据, 也就是说如果修改某一Mat,其他Mat也会随之改变复制全新的Mat, 使用CopyTo() 和 Clone() 方法将生成一个全新的Mat, 新Mat和原Mat不共享数据. 图像区域和点的读写 区域读取: 通过s…

图像复制

  • 共享数据, 使用 new Mat(srcMat, ...) 和 newMat=srcMat 生成新的Mat都和原Mat共享数据, 也就是说如果修改某一Mat,其他Mat也会随之改变
  • 复制全新的Mat, 使用CopyTo() 和 Clone() 方法将生成一个全新的Mat, 新Mat和原Mat不共享数据.

图像区域和点的读写

  • 区域读取: 通过srcMat[Rect] 读取指定区域, 读取的结果也是一个Mat
  • 区域写入: 可以将一个新的Mat赋值到srcMat[Rect]
  • 点的读写: 点的读写有很多种方法, 比如指针、GetIndexer、At、Get/Set和LUT等, 如果性能要求不高的话, 推荐使用 At<>() 泛型方法, 代码简单已读. 可参考 https://blog.csdn.net/TyroneKing/article/details/129108838
  • 点的读取: 可以通过 srcMat.At<>() 方法获取指定点的颜色值.
  • 点的写入: 可以直接给 srcMat.At<>()的结果赋值

图像共享数据的测试

private void copyMats(){string pngFile = @"D:\my_workspace\opencv\images\draw.png";var mat = Cv2.ImRead(pngFile, ImreadModes.Color);//通过指定Rect方式截取图像,新的Mat和原Mat共享数据var partRef1 = new Mat(mat, new Rect(0, 0, mat.Width, mat.Height));//通过指定rowRange和colRange方式截图图像,新的Mat和原Mat共享数据var partRef2 = new Mat(mat, rowRange: new Range(50, 300), colRange: Range.All);//CopyTo()和Clone()都是复制出一份新的Matvar deepCopyMat = new Mat();mat.CopyTo(deepCopyMat);var cloneMat = mat.Clone();var rect = new Rect(10, 10, 100, 100);mat[rect] = new Mat(rect.Width, rect.Width, MatType.CV_8UC3, Scalar.Red);Cv2.ImShow("mat", mat);Cv2.ImShow("partRef1", partRef1);Cv2.ImShow("partRef2", partRef2);Cv2.ImShow("deepCopyMat", deepCopyMat);Cv2.ImShow("cloneMat", cloneMat);Cv2.WaitKey();Cv2.DestroyAllWindows();}

效果截图:

读写测试代码

private void readWriteTest(){string pngFile = @"D:\my_workspace\opencv\images\draw.png";var srcMat = Cv2.ImRead(pngFile, ImreadModes.Color);var rect = new Rect(10, 10, 200, 200);//通过srcMat[Rect] 读取指定区域, 读取的结果也是一个Matvar newMat = srcMat[rect];//可以将一个新的Mat赋值到srcMat[Rect]srcMat[rect] = new Mat(rect.Width, rect.Width, MatType.CV_8UC3, Scalar.Green);for (int i = 0; i < srcMat.Rows; i++){//可以通过 srcMat.At() 方法获取指定点的颜色值.var vec3b = srcMat.At<Vec3b>(i, 100);//可以直接给 srcMat.At()的结果赋值srcMat.At<Vec3b>(i, 100) = new Vec3b(vec3b.Item0, 0, 255);}Cv2.ImShow("mat", srcMat);Cv2.ImShow("newMat", newMat);Cv2.WaitKey();Cv2.DestroyAllWindows();}

效果截图:

参考:

  • OpenCV如何扫描图像、利用查找表和计时/遍历、修改Mat像素 https://blog.csdn.net/TyroneKing/article/details/129108838
http://www.tj-hxxt.cn/news/52165.html

相关文章:

  • 做外贸生意是不是需要建网站企业网站seo贵不贵
  • 网站上线 文案seo内部优化包括哪些内容
  • 小游戏网站建设公司最近一周新闻热点大事件
  • 新吴区网站建设今日最火的新闻
  • 宝应县建设工程管理局网站外贸营销策略都有哪些
  • 苏州吴江建设局招投标网站站优云seo优化
  • 网站建设及维护服务制作电商网站
  • 杭州专业做网站营销型网站的推广方法
  • dw做的网站怎么上传图片恶意点击竞价是用的什么软件
  • 用织梦做视频网站好不好哈尔滨网络seo公司
  • 关于建设网站的需求百度网络推广怎么收费
  • 自己做网站需要什么程序海南seo
  • 高校心理健康网站建设与实现海外网站推广的公司
  • 大型的seo公司镇江seo优化
  • 建立网站图片网站系统
  • 唐山网站制作有利于seo优化的是
  • 自己做网站商城需要营业执照吗百度资源提交
  • 网站开发任务深圳百度公司地址在哪里
  • 商城网站建设行情百家号权重查询站长工具
  • 宁波网站设计相信荣胜网络seo免费诊断联系方式
  • 网站建设与管理试卷A江苏建站
  • 独立做网站需要学习什么seo网络优化招聘
  • 哪里做网站最便宜沧州网站建设推广
  • 苏州品牌网站建设重庆关键词优化服务
  • 网站和管理系统哪个更难做第一推广网
  • 公司网站开发报价1元购买域名
  • 做网站需要编程么产品推广网站哪个好
  • 国外b站视频app宁波百度seo排名优化
  • 郴州网站制作公司电话百度账号登录入口
  • 企业网站一般用什么域名成都seo优化排名推广