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

it类网站北京seo优化多少钱

it类网站,北京seo优化多少钱,益阳网站seo,网页制作专业必备图像复制 共享数据, 使用 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.mmbaike.com/news/101736.html

相关文章:

  • 网站制作视频教程全套搜索引擎分析论文
  • 超市网站怎么做的百度今日数据
  • b2c机票网站建设广州seo排名收费
  • 做动态网站用哪个程序软件比较简单?百度识图网页版
  • 校园网站制作有没有免费的写文案的软件
  • 防城港网站建设优化营商环境条例心得体会
  • 东盟经济技术开发区建设网站免费域名申请
  • 成都网站建设报价韩国热搜榜
  • 网站开发公司 网站空间公司培训课程有哪些
  • 江苏网站建设哪家好百度下载链接
  • 做什么网站比较简单线上宣传有哪些好的方式方法
  • 做网站月入自己怎么做引流推广
  • 什么是网络营销活动seo推广软件下载
  • 浙江平安建设信息系统网站免费建网页
  • 武汉网上商城网站建设b站2023年免费入口
  • wordpress 企业网站 授权费网络营销学院
  • 燕郊网站建设哪家好企业邮箱哪个好
  • 做磁性材料在哪些网站推广比较好营销推广
  • 怀化招标网站刷排名的软件是什么
  • 专业网站建设咨电商网站建设方案
  • 网站的版式设计要看网的域名是多少
  • 手上有一个好网站怎么做赚钱seo快速排名利器
  • 做网站需要学java长春关键词优化报价
  • 推广网站挣钱 优帮云手机游戏性能优化软件
  • 有一个做ppt的网站吗郑州seo地址
  • 北京网站建设公司兴田德润电话网络广告营销案例
  • 聊城集团网站建设多少钱百度下载app
  • 手机网站内容管理系统网站模板设计
  • 台州做网站哪家好网页设计可以自学吗
  • 找个兼职做网站的下载百度导航app