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

一级a做爰片免费网站神马电影自我介绍网站html

一级a做爰片免费网站神马电影,自我介绍网站html,亚马逊电商平台怎么入驻,seo按照搜索引擎的学更好的别人#xff0c; 做更好的自己。 ——《微卡智享》 本文长度为1702字#xff0c;预计阅读4分钟 前言 前阵子在做方案时#xff0c;得了几张骨钉的图片#xff0c;骨科耗材批号效期管理一直是比较麻烦的#xff0c;贴RFID标签成本太高#xff0c;所以一般考虑还是… 学更好的别人 做更好的自己。 ——《微卡智享》 本文长度为1702字预计阅读4分钟 前言 前阵子在做方案时得了几张骨钉的图片骨科耗材批号效期管理一直是比较麻烦的贴RFID标签成本太高所以一般考虑还是OCR的识别比较好因为本身骨钉的字符是按圆印上去的直接截取图片进行OCR没法识别需要经过图像处理后再识别所以这篇就是学习一下OpenCV的极坐标变换函数。 实现效果 源图像 查找出骨钉后用极坐标变换生成的图像 图像本来就是手机拍的反光也比较厉害所以本篇主要就是介绍极坐标变换最后的OCR识别就不在这个范围内了。 极坐标变换函数  void cv::warpPolar(InputArray   src, —原图像单通道灰度图和三通道彩色图都可OutputArray dst, —输出图像与原图像具有相同的数据类型和通道数Size dsize, —目标图像大小如图不填这个值或dsize两个值中的某个值Point2f center, —极坐标变换时原点坐标double maxRadius, —极坐标系的极半径最大值int   flags ) —插值方法与极坐标映射方法标志。方法之间通过“”或者“|”号进行连接 重点说明 dsize:目标图像大小Size(0,0)主要就是填写里面的width和height 当width和height两个值均0默认则目标图像将具有几乎相同的源边界圆面积 当width0并且height 0,目标图像区域将与边界圆区域按比例缩放 当width和height都  0, 目标图像将具有给定的大小因此边界圆的面积将缩放为dsize flags插值方法与极坐标映射方法标志 插值方法图像缩放之后肯定像素要进行重新计算的就靠这个参数来指定重新计算像素的方式一般分为       INTER_NEAREST - 最邻近插值       INTER_LINEAR - 双线性插值如果最后一个参数你不指定默认使用这种方法       INTER_AREA -区域插值       INTER_CUBIC - 4x4像素邻域内的双立方插值       INTER_LANCZOS4 - 8x8像素邻域内的Lanczos插值 这个我们一般都默认为INTER_LINEAR - 双线性插值即可。   极坐标映射方法里面就三个主要是极坐标变换、半对数极坐标变换和逆变换。 WARP_POLAR_LINEAR - 极坐标变换 WARP_POLAR_LOG - 半对数极坐标变换 WARP_INVERSE_MAP - 逆变换 核心来说其实就是两个极坐标变换和半对数极坐标变换它们两个都是由圆变换为矩形而逆变换就是针对两种变换由矩形再转为圆。逆变换在原来的flags后面用“”连接即可。 warpPolar的起始位置和图像旋转角度 极坐标变换的起始位置默认就是3点钟的方向上图中用蓝色箭头指的就是开始的位置从3点钟方向顺时针来进行变换。 生成的矩形默认是向下垂直排列的按我们自己的习惯肯定还需要将图像进行旋转所以转换完后需要用rotate做一个图像的旋转。 代码如下 //极坐标变换 //参数 flagsINTER_LINEAR 双线性插值 Mat warpPolarMat(Mat src, int flags INTER_LINEAR WARP_POLAR_LINEAR) {// 圆心坐标Point2f center Point2f(src.cols / 2, src.rows / 2);// 圆的半径double maxRadius min(center.y, center.x) - 1;// 圆的周长int circumference maxRadius * 2 * 3.14;//输出图像Mat dst;// 极坐标变换, Size()表示OpenCV根据输入自行决定输出图像尺寸warpPolar(src, dst, Size(0, 0), center, maxRadius, flags);// 改变结果方向rotate(dst, dst, ROTATE_90_COUNTERCLOCKWISE);return dst; } 实现思路及完整代码 #实现步骤1图像简单处理灰度图、中值滤波2霍夫圆检测获取到图像中的骨钉3将获取到的圆每个分别截取出来进行极坐标变换显示出来 完整代码 #include iostream #include opencv2/opencv.hppusing namespace std; using namespace cv;//显示窗口设置 //参数 img 显示的图像源 // winname 显示的窗口名称, // pointx 显示的坐标x // pointy 显示的坐标y void setshowwindow(Mat img, string winname, int pointx, int pointy) {//设置显示窗口namedWindow(winname, WindowFlags::WINDOW_NORMAL);//设置图像显示大小resizeWindow(winname, img.size());//设置图像显示位置moveWindow(winname, pointx, pointy); }//极坐标变换 //参数 flagsINTER_LINEAR 双线性插值 Mat warpPolarMat(Mat src, int flags INTER_LINEAR WARP_POLAR_LINEAR) {// 圆心坐标Point2f center Point2f(src.cols / 2, src.rows / 2);// 圆的半径double maxRadius min(center.y, center.x) - 1;// 圆的周长int circumference maxRadius * 2 * 3.14;//输出图像Mat dst;// 极坐标变换, Size()表示OpenCV根据输入自行决定输出图像尺寸warpPolar(src, dst, Size(0, 0), center, maxRadius, flags);// 改变结果方向rotate(dst, dst, ROTATE_90_COUNTERCLOCKWISE);return dst; }int main(int argc, char** argv) {//测试图片文件 string testfile E:/DCIM/imagetest/06.png;//读取图片Mat src imread(testfile);//修改图片大小setshowwindow(src, src, 50, 200);imshow(src, src);//灰度图Mat gray;cvtColor(src, gray, COLOR_BGR2GRAY);//中值滤波medianBlur(gray, gray, 9);//霍夫圆检测vectorVec3f circles;HoughCircles(gray, circles, HOUGH_GRADIENT, 1, 50, 100, 100);//绘制检测到的圆型for (size_t i 0; i circles.size(); i) {Vec3f item circles[i];//绘制检测到的圆circle(src, Point(item[0], item[1]), item[2], Scalar(0, 0, 255));//根据圆点和半径生成矩形Rect rect Rect(Point(item[0] - item[2], item[1] - item[2]), Point(item[0] item[2], item[1] item[2]));//截图到当前圆的图像Mat rectsrc src(rect);//极坐标变换Mat rectdst, showmat;rectdst warpPolarMat(rectsrc);//设置当前圆显示位置String title circle to_string(i);String title2 roi to_string(i);if ((i % 2) 0) {setshowwindow(rectsrc, title, 50, rectsrc.rows * (i / 2) 2);setshowwindow(rectdst, title2, 50 rectsrc.cols 2, rectsrc.rows * (i / 2) 2);}else {setshowwindow(rectsrc, title, (rectsrc.rows rectdst.rows) * 2 , rectsrc.rows * (i / 2) (i % 2) 2);setshowwindow(rectdst, title2, (rectsrc.rows rectdst.rows) *2 rectsrc.rows , rectsrc.rows * (i / 2) (i % 2) 2);}imshow(title, rectsrc);imshow(title2, rectdst);}waitKey();return 0; } 完 往期精彩回顾 Android Aidl跨进程通讯(四)--接口回调服务端向客户端发送数据   Android Aidl跨进程通讯(三)--进阶使用   Android Aidl跨进程通讯(二)--异常捕获处理
http://www.hkea.cn/news/14328145/

相关文章:

  • 营销型网站价格实惠win8式网站后台模板
  • 机构类网站有哪些百度小说搜索风云榜排行榜
  • 做网站界面的软件用动易建设网站教程
  • 深圳网站关键词优化wordpress 金融模板
  • seo网站设计就业前景邹城网站网站建设
  • 网站建设制作方式有哪些wordpress用户爆破
  • 2021没封的网站uc有限责任公司如何承担债务
  • 济南网站建设兼职口碑好的龙岗网站建设
  • 网站开发 项目介绍中国建设银行官网站贺岁产品
  • 某鲜花网站的数据库建设wordpress 错误500
  • 南阳企业网站制作基层建设杂志网站
  • 查看网站建站时间苏州互联网大厂
  • 网站开发的技术支撑 经验能力wordpress首页视频播放
  • 舟山市住房与城乡建设厅网站石家庄市工程建设造价管理站网站
  • 有的网站为什么打不开怎么回事深圳十大教育培训机构排名
  • 服务器搭建网站视频教程wordpress相册插件
  • 解释网站为什么这样做怎么做相亲网站
  • 建设促销网站前的市场分析wordpress rest 某类
  • 网站推广具体内容简要说明怎么知道别人网站是谁做的优化
  • 番禺网站开发哪里好最近三天的新闻大事
  • 外包+网站开发公司巨野网站定制
  • 高阳县做企业网站夏天做啥网站致富
  • 网站文章没有被收录做娱乐网站
  • 建设网站论坛怎样在百度建网站
  • 深圳品牌设计推荐北京seo优化诊断
  • 网站开发做什么费用如何写网站建设方案
  • 美食网站开发目的与意义购物网站管理系统
  • 南京网站优化步骤网站建设学什么好
  • 长沙建网站设计深圳网站设计九曲网站建设
  • 有什么网站可以做宣传创意设计公司简介