self.cols.copy
时间: 2024-05-29 12:12:57 浏览: 6
I'm sorry, as an AI language model, I do not have access to the specific context or code you are referring to. Can you provide more details or code snippets so I can better understand your question?
相关问题
把这段c++代码转为python:void unwrap::reunwrap(Mat I,Mat mask,int choose) { unwraprow=I.rows; unwrapcol=I.cols; switch(choose) { case 1: RC(I,mask); break; case 2: Branch_cutting(I,mask); break; default: break; } } void unwrap::RC(Mat I,Mat mask) { int roww, coll, half; roww = I.rows;//540 coll = I.cols;//720 half = ceil(coll / 2);//360 Mat pp = Mat::zeros(roww, 1, CV_64FC1); Mat aa = Mat::zeros(1, coll, CV_64FC1); Mat bb = Mat::zeros(1, coll, CV_64FC1); Mat left = Mat::zeros(roww, half, CV_64FC1); Mat leftt = Mat::zeros(roww, half, CV_64FC1); Mat right = Mat::zeros(roww, half + 1, CV_64FC1); Mat phase = Mat::zeros(roww, coll, CV_64FC1); I.col(half - 1).copyTo(pp); Unwrap(pp, pi); pp.copyTo(I.col(half - 1)); for (int i = 0; i < half; i++) { I.col(half - i - 1).copyTo(left.col(i)); } for (int i = half - 1; i < coll; i++) { I.col(i).copyTo(right.col(i - half + 1)); } for (int j = 0; j < roww; j++) { left.row(j).copyTo(aa); right.row(j).copyTo(bb); Unwrap(aa, pi); Unwrap(bb, pi); aa.copyTo(left.row(j)); bb.copyTo(right.row(j)); } for (int i = 0; i < half - 1; i++) { left.col(half - i - 1).copyTo(leftt.col(i)); leftt.col(i).copyTo(phase.col(i)); } for (int i = half - 1; i < coll; i++) { right.col(i - half + 1).copyTo(phase.col(i)); } for(int i=0;i<roww;i++) { for(int j=0;j<coll;j++) { if(mask.at<double>(i,j)==0) { phase.at<double>(i,j)=0; } } } phase.copyTo(PhaseUnwrap); pp.release(); aa.release(); bb.release(); left.release(); leftt.release(); right.release(); phase.release(); }
import numpy as np
import cv2
class unwrap:
def reunwrap(self, I, mask, choose):
self.unwraprow = I.shape[0]
self.unwrapcol = I.shape[1]
if choose == 1:
self.RC(I, mask)
elif choose == 2:
self.Branch_cutting(I, mask)
def RC(self, I, mask):
roww, coll = I.shape
half = int(np.ceil(coll / 2))
pp = np.zeros((roww, 1), dtype=np.float64)
aa = np.zeros((1, coll), dtype=np.float64)
bb = np.zeros((1, coll), dtype=np.float64)
left = np.zeros((roww, half), dtype=np.float64)
leftt = np.zeros((roww, half), dtype=np.float64)
right = np.zeros((roww, half - 1), dtype=np.float64)
phase = np.zeros((roww, coll), dtype=np.float64)
pp[:,0] = I[:,half - 1]
pi = np.pi
self.Unwrap(pp, pi)
I[:,half - 1] = pp[:,0]
for i in range(half):
left[:,i] = I[:,half - i - 1]
for i in range(half - 1, coll):
right[:,i - half + 1] = I[:,i]
for j in range(roww):
aa[0,:] = left[j,:]
bb[0,:] = right[j,:]
self.Unwrap(aa, pi)
self.Unwrap(bb, pi)
left[j,:] = aa[0,:]
right[j,:] = bb[0,:]
for i in range(half - 1):
leftt[:,i] = left[:,half - i - 1]
phase[:,i] = leftt[:,i]
for i in range(half - 1, coll):
phase[:,i] = right[:,i - half + 1]
for i in range(roww):
for j in range(coll):
if mask[i,j] == 0:
phase[i,j] = 0
self.PhaseUnwrap = phase
pp = None
aa = None
bb = None
left = None
leftt = None
right = None
phase = None
def Unwrap(self, ph, pi):
for k in range(ph.shape[0]):
for i in range(1, ph.shape[1]):
diff = ph[k,i] - ph[k,i-1]
if diff > pi:
ph[k,i:] -= 2 * pi
elif diff < -pi:
ph[k,i:] += 2 * pi
I = np.random.rand(540, 720)
mask = np.random.rand(540, 720)
choose = 1
unwrapper = unwrap()
unwrapper.reunwrap(I, mask, choose)
import os # import re import sys # import time import pandas as pd import numpy as np from datetime import datetime import matplotlib.pyplot as plt import seaborn as sns # set path env -- START def setModulePath(rootName, maxTries=8): rootPath = os.path.dirname(os.path.abspath(__file__)) for i in range(maxTries): if os.path.basename(rootPath)==rootName: # 如果已经到达指定的根目录 break else: rootPath = os.path.dirname(rootPath) # 否则取上级目录 print('<root>',rootPath) sys.path.append(rootPath) return rootPath root = setModulePath(rootName='assignment') from utilities import ez # set path env -- END class DataAnalyzer: def __init__(self): self.dataFrame = None def getDataFromExcel(self, src_pth, data_type, cols): obj = pd.ExcelFile(src_pth) raw = pd.read_excel(obj, sheet_name=0, dtype=data_type) self.dataFrame = raw[cols].copy(deep=True) def adjustDataType(self ): df = self.dataFrame.copy(deep=True) intCols = [ "size" ] for i in intCols: df[i] = df[i].apply(lambda x: int(x)) floatCols = [ "total_bill", "tip"] for i in floatCols: df[i] = df[i].apply(lambda x: float(x)) self.dataFrame = df if __name__ == '__main__': infile = os.path.join(root, "data", "data.xlsx") inputColumns = ez.inputColumns inputColumnType = {column: str for column in inputColumns} analyzer = DataAnalyzer() analyzer.getDataFromExcel(src_pth=infile, data_type=inputColumnType,cols=inputColumns) analyzer.adjustDataType() df = analyzer.dataFrame df['tip_percent'] = df['tip']/(df['tip']+df['total_bill']) sns.set() 这个程序包括了哪些知识点
这个程序包括了以下知识点:
1. 文件操作:使用了os模块来获取文件路径,使用pandas读取Excel文件。
2. 数据处理:使用pandas来处理数据,包括读取、复制、修改数据类型等。
3. 数据可视化:使用matplotlib和seaborn来进行数据可视化,包括生成图表、设置样式等。
4. 模块导入:使用sys和自定义模块来导入其他模块。
5. 类的定义和使用:定义了DataAnalyzer类来封装数据分析的功能。
6. 条件语句:使用了if语句来判断程序是否在主程序中运行。
7. 循环语句:使用了for循环来遍历列表。
8. 函数的定义和使用:定义了多个函数来实现具体的功能。
9. 匿名函数:使用了lambda函数来对数据进行处理。
10. 数据类型转换:使用了int()和float()函数来将数据类型转换为整数和浮点数。
相关推荐
![bat](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)