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

北京通州网站建设公司网页制作基础教程ppt

北京通州网站建设公司,网页制作基础教程ppt,网站建设中 请稍后访问,wordpress视频网站模板实验2 几何变换与变形 实验2-1:图像缩放 实验要求:1)实现一个图像缩放函数,可以对输入图像进行任意倍数的缩放; 2)采用双线性插值进行重采样; 3)X,Y方向的缩放倍数参函数参数的形…

实验2 几何变换与变形

实验2-1:图像缩放

实验要求:1)实现一个图像缩放函数,可以对输入图像进行任意倍数的缩放;

2)采用双线性插值进行重采样;

3)X,Y方向的缩放倍数参函数参数的形式传入;

4)可以只考虑输入图像为3通道,8位深度的情况;

5)不能调用图像处理库的缩放函数来完成;

参考函数:void Scale(const MyImage &input, MyImage &output, double sx, double sy);

对于实验一,先利用缩放倍数,求得缩放后图像的width和height。然后对缩放后图像中的每个像素点(x,y),利用如下公式:

x'=x/sx  y'=y/sy (其中sx和sy分别为x和y轴上图像的缩放倍数)求得对应于缩放前图像中的(x',y'),满足f(x,y)=f(x',y')

由于x'和y'不一定为整数值,因而需要用双线性插值法求得f(x',y')

具体公式如下图

此外,对于缩放图像的左部和上部,会出现溢出问题,因此需要进行边界处理。

(而右下部不会出现该问题)

具体代码实现如下

#图像缩放
#input_img为输入图像,output_img为输出图像,x,y为缩放倍数
import math
import numpy as np
import cv2input_img = cv2.imread('img.png')
cv2.namedWindow("input Image", cv2.WINDOW_AUTOSIZE)
cv2.imshow('input Image',input_img)
# 等待按键用来展示图片
# 释放窗口x = 0.5
y = 1
width,height,dimension=input_img.shape #原图像的行和列数和维度
new_width=round(width*x) #缩放后图像的行数,取整
new_height=round(height*y)
output_img=np.zeros((new_width,new_height,dimension),dtype=np.uint8)#定义矩阵
for i in range(new_width) :for j in range(new_height):tempx=math.floor(i/x) #(i,j)还原为原图像的坐标值的整数部分tempy=math.floor(j/y)if tempx == 0 or tempy == 0 or tempx == width-1 or tempy == height-1:output_img[0,j,:] = input_img[0,tempy,:] #处理缩放后图像在上和左可能出现边界溢出问题output_img[i,0,:] = input_img[tempx,0,:] #右下边界不会出现溢出问题#对其余像素进行处理else:# 计算原图像坐标减去新图像坐标的小数部分a = i / x - tempxb = j / y - tempyoutput_img[i,j,:]=input_img[tempx,tempy,:]*(1-a)*(1-b) + (1-a)*b*input_img[tempx,tempy+1,:] + a*(1-b)*input_img[tempx+1,tempy,:] + a*b*input_img[tempx+1,tempy+1,:]cv2.imshow("Scaled Image", output_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果:

实验2-2:图像变形

实验2-2根据实验提供的公式,逐步求出所需变量即可。

具体代码实现如下

#图像变形
import math
import numpy as np
import cv2input_img = cv2.imread('god.png')
cv2.namedWindow("input Image", cv2.WINDOW_AUTOSIZE)
cv2.imshow('input Image',input_img)width,height,dimension=input_img.shape #原图像的行和列数和维度
output_img=np.zeros((width,height,dimension),dtype=np.uint8)#定义矩阵
for i in range(width):for j in range(height):#中心归一化tempx=(i-0.5*width)/(0.5*width)tempy=(j-0.5*height)/(0.5*height)#计算r和θr=math.sqrt(math.pow(tempx,2)+math.pow(tempy,2))xita=math.pow((1-r),2)if r>=1:x=tempxy=tempyelse:x=math.cos(xita)*tempx-math.sin(xita)*tempyy=math.sin(xita)*tempx+math.cos(xita)*tempy#上述x和y是中心归一化之后的坐标值,根据公式反推图像的x和y值#必须使用(uint16()函数进行处理坐标,将其转化成无符号16位的int类型,否则坐标索引会出错#uint8保存的数据,是0-255.   uint16 保存的数据,是0-65535.old_x=int((x + 1)*0.5*width)old_y=int((y + 1)*0.5*height)output_img[i,j,:]=input_img[old_x,old_y,:]
cv2.imshow("Reshaped Image", output_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果:

          

http://www.yayakq.cn/news/348631/

相关文章:

  • 沧州地区阿里巴巴做网站网站的设计流程是怎么样的?
  • 子域名的网站放到哪里去您与此网站之间建立的连接不安全
  • 建站系统主要包括服饰品牌网站建设
  • access 网站数据库营销网站报备
  • 网站代码审计保定建站模板搭建
  • 有趣的网站知乎规模大的企业建站
  • 花生壳做网站巩义网站优化培训
  • 网上购物网站设计吕梁市建设局网站
  • 门户网站asp源码网站建设动态部分实训报告
  • 网页二级网站怎么做网站权重值在较长时间内是一定的页面优化
  • 哪些网站可以接工程做vs 团队网站开发
  • 哈尔滨网站制作推广阜阳网站建设哪家好
  • 网站建设模板后台石家庄软件公司排名
  • 做外销网站志鸿优化设计答案网
  • 500网站建设广东省建设信息网站
  • 公司用什么邮箱好上海网络企业优化公司
  • 搜索引擎中注册网站一览英才网
  • 网站制作 合肥什么是电商?电商怎么做
  • 东莞seo建站公司哪家好wordpress 数据库
  • 河南第一火电建设公司网站西安免费网站制作
  • 外贸网站建设与优化有服务器域名源码怎么做网站平台
  • 卫浴响应式外贸网站建设怎样做网站外部链接
  • 优质的网站建设流程什么软件可以做图片设计
  • 广州网站优wordpress 4.7 多站点
  • 国内优秀网页网站asp网站开发的背景与环境
  • 什么网站可以发布信息昌大建设三公司
  • 厦门市建设局网站咨询电话app网站有哪些
  • cms做的电影网站百度快照优化
  • 网站建设方案费用预算网站建设咨询公
  • 云平台网站建设方案书自动生成代码的软件