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

江苏省建设工程造价管理协会网站/如何推广自己的店铺

江苏省建设工程造价管理协会网站,如何推广自己的店铺,南京商城网站开发设计,淘宝里面的网站怎么做的本代码python opencv运行,用鼠标在原图上面依次左击点三个点,左上,左下,右下。然后设定固定窗口大小,比如384128大小。 就是把在原图上面点击的三个点映射到384128大小图像上来。不管你原图选中多大面积的图像都会映射…

本代码python opencv运行,用鼠标在原图上面依次左击点三个点,左上,左下,右下。然后设定固定窗口大小,比如384128大小。
就是把在原图上面点击的三个点映射到384
128大小图像上来。不管你原图选中多大面积的图像都会映射到我们设定的大小上面来。
这里就是仿射变换的原理映射。通过三对点映射关系求得仿射变换矩阵。然后通过矩阵来弄图像。
这里需要注意的是大图上面的点可以映射到截取的小图上面,同样的,小图上面的点也可以映射到大图上!
下面代码就是:

import cv2
import numpy as npdef OnMouseEvent( event, x, y, flags, param):global lbtDownPosglobal posglobal pointListimg = paramignoreEvent = [cv2.EVENT_MBUTTONDOWN, cv2.EVENT_MBUTTONUP, cv2.EVENT_MBUTTONDBLCLK, cv2.EVENT_MOUSEWHEEL,cv2.EVENT_MOUSEHWHEEL,cv2.EVENT_MOUSEMOVE,cv2.EVENT_LBUTTONDBLCLK, cv2.EVENT_RBUTTONDBLCLK, cv2.EVENT_RBUTTONDOWN, cv2.EVENT_RBUTTONUP]  # 需要忽略的鼠标事件needRecordEvent = [ cv2.EVENT_LBUTTONDOWN, cv2.EVENT_LBUTTONUP]  # 需要记录当前信息的鼠标事件if event == cv2.EVENT_LBUTTONDOWN:pos = (x,y)print("---1 pos 》OnMouseEvent EVENT_LBUTTONDOWN:",pos)n = len(pointList)if True:if len(pointList) <= 3:pointList.append(pos)cv2.putText(img, '.', (x - 10, y), fontFace=cv2.FONT_HERSHEY_SIMPLEX, fontScale=3, color=(255, 0, 0))cv2.putText(img, f'select point{n}:({x},{y})', (x + 20, y), fontFace=cv2.FONT_HERSHEY_SIMPLEX,fontScale=0.3, color=(255, 0, 0))def getPoint(imgfile):global posglobal pointListpointList = []img = cv2.imread(imgfile)cv2.putText(img, 'https://www.cnblogs.com/yanghailin/', (100, 120), fontFace=cv2.FONT_HERSHEY_SIMPLEX,fontScale=0.5, color=(255, 0, 0))imgbak = np.array(img)rows,cols = img.shape[:2]rows = 128cols = 384winName = 'select three point'cv2.namedWindow(winName)cv2.setMouseCallback(winName, OnMouseEvent, img)print("请将要单独放大的部分从其左上角、左下角、右下角分别鼠标左键点击选择三个点,选择后在图像上有提示信息,选择完成后按ESC退出")while True:#通过鼠标左键点击选择三个点,分别代表要映射到左上、左下和右下三个点cv2.imshow(winName, img)ch = cv2.waitKey(100)if ch == 27: breakdestPoint = [(0,0),(0,rows),(cols,rows)]if len(pointList)==3:pts1 = np.float32(pointList)pts2 = np.float32(destPoint)M = cv2.getAffineTransform(pts1, pts2)print("=========M===========")print(M)dst = cv2.warpAffine(imgbak, M, (cols, rows))# b = np.array([cols/2,rows/2,1])# b = np.array([rows / 2, cols / 2, 1])b = np.array([1760 / 2 + 100, 540 / 2 + 40, 1])a = np.matmul(M,b)  #a = M * b      img384 = M * img1760   --->大图映射到小图cv2.circle(imgbak, (int(b[0]), int(b[1])), 8, (0, 255, 255), -1)cv2.circle(dst, (int(a[0]), int(a[1])), 4, (0, 255, 255), -1)# M_i = []M_i = cv2.invertAffineTransform(M)b = np.array([384 / 2 + 0, 128 / 2 + 0, 1])a = np.matmul(M_i, b)  # a = M * b      img1760 = M * img384   --->小图映射到大图cv2.circle(dst,(int(b[0]),int(b[1])),8,(255,0,0),-1)cv2.circle(imgbak, (int(a[0]),int(a[1])), 12, (255, 0, 0), -1)cv2.imshow(winName, dst)cv2.imshow("src", imgbak)ch = cv2.waitKey(0)else:print("没有选择足够的点")getPoint("/data_1/1.jpeg")

鼠标左击分别点左上,左下,右下。然后按esc键。

下图可以看到我们在原图上面设定的点可以正确映射到小图,反之也是可以。都能对应上。

http://www.lbrq.cn/news/741745.html

相关文章:

  • 100件创意产品设计方案/西安网站关键词优化推荐
  • 中国建设银行上海分行网站/深圳市企业网站seo
  • php动态网站建设内容/网络营销推广与策划
  • 广告公司的网站建设价格/龙岗百度快速排名
  • 做期货看什么网站/产品推广步骤
  • wordpress教程 ppt/seo排名啥意思
  • 涿州网站建设天峰/百度广告代理商
  • 购物网站名字大全/有哪些平台可以做推广
  • 用哪个程序做网站收录好/百度推广视频
  • 做艺术品的网站/免费友链互换
  • vuejs做视频网站设计/怎么自己创建网站
  • 南宁网站优化/微商引流人脉推广软件
  • 建设刷钻网站/如何推广app更高效
  • 页面设计布局/宁波seo优化外包公司
  • 网站的容量/武汉谷歌seo
  • 企业网站开发项目策划书/国内网络推广渠道
  • 给人做代工的网站/seo网络营销外包
  • 网站建设要考虑哪些方面/海外发布新闻
  • 网站排名英文怎么说/站长工具 seo综合查询
  • 网站推广公司哎奶茶/论坛优化seo
  • 网站建设合同纠纷问题/谷歌广告上海有限公司官网
  • seo网站建设厦门/关键词分类
  • 潍坊市住房和城乡建设网站/做百度推广代运营有用吗
  • 男女生做爰视频网站/品牌营销策划方案案例
  • 网页升级访问每天正常更新每日/郑州seo技术代理
  • 北京市建设工程质量监督站网站/营销型网站建设的步骤流程是什么
  • 怎么建淘宝优惠券网站做推广/seo优化啥意思
  • c 做网站流程/如何提高网站排名
  • 加强网站建设技术培训/全域seo
  • 企业如何建设网站呢/站长工具大全
  • RK-Android11-PackageInstaller安装器自动安装功能实现
  • 自动驾驶导航信号使用方式调研
  • 简笔成画:让AI绘画变得简单而有趣
  • 【C++】基础:C++11-14-17常用新特性介绍
  • 从线性回归到神经网络到自注意力机制 —— 激活函数与参数的演进
  • 深度学习必然用到的概率知识