写一个可以选择扭曲图像的代码

时间: 2023-08-31 12:31:05 浏览: 19
### 回答1: 以下是使用Python的pillow库编写的一个简单的程序,可以选择扭曲图像。 ```python from PIL import Image, ImageDraw import numpy as np image = Image.open("example.jpg") width, height = image.size # 创建新的图像对象 result = Image.new("RGB", (width, height)) draw = ImageDraw.Draw(result) # 扭曲参数 scale = 20 # 扭曲强度 noise = 50 # 噪声强度 # 创建扭曲矩阵 m = np.zeros((height, width, 2), dtype=np.float32) for y in range(height): for x in range(width): dx = scale * np.sin(2*np.pi*y/height) dy = scale * np.cos(2*np.pi*x/width) m[y, x] = [dx, dy] # 添加噪声 n = np.random.normal(scale=noise, size=(height, width, 2)).astype(np.float32) m += n # 应用扭曲矩阵 m = m.reshape(-1, 2) image_data = np.array(image) pixels = np.matmul(image_data.reshape(-1, 3), np.eye(3, 3, dtype=np.float32) + np.vstack([m.T, np.zeros((1, m.shape[0]), dtype=np.float32)])) pixels = np.clip(pixels.reshape(height, width, 3).astype(np.uint8), 0, 255) # 保存结果 result = Image.fromarray(pixels) result.save("result.jpg") ``` 该程序首先打开一个图像文件,然后创建一个新的图像对象。然后使用一个扭曲矩阵和一个噪声矩阵来扭曲图像。最后,将结果保存为一个新的图像文件。该程序可以通过调整扭曲强度和噪声强度来控制扭曲程度和图像的清晰度。 ### 回答2: 可以使用Python编程语言编写一个简单的代码来实现选择和扭曲图像的功能。以下是一个基本的示例代码: ```python from PIL import Image def distort_image(input_image_path, output_image_path, scale=0.5): # 打开图像文件 image = Image.open(input_image_path) # 设置扭曲的尺度 width, height = image.size scale = int(min(width, height) * scale) # 创建一个新的图像对象 distorted_image = Image.new('RGB', (width, height)) # 扭曲图像 for y in range(height): for x in range(width): # 计算扭曲的目标位置 offset_x = scale * sin(2 * pi * y / height) offset_y = scale * sin(2 * pi * x / width) new_x = int(x + offset_x) new_y = int(y + offset_y) # 检查目标位置是否超出图像范围 if 0 <= new_x < width and 0 <= new_y < height: # 获取源像素值并将其复制到新图像对象中 source_pixel = image.getpixel((new_x, new_y)) distorted_image.putpixel((x, y), source_pixel) # 保存扭曲后的图像 distorted_image.save(output_image_path) # 测试代码 distort_image('input.jpg', 'output.jpg', scale=0.1) ``` 这个代码首先使用`PIL`库打开图像文件,并确定需要进行的扭曲尺度。然后,它创建一个新的图像对象,并在每一个像素位置上计算扭曲的目标位置。接下来,代码通过获取源像素值并将其复制到新图像对象中实现图像的扭曲。最后,扭曲后的图像保存到输出路径。在这个示例中,`input.jpg`是输入图像的文件路径,`output.jpg`是扭曲后图像的保存路径,`scale`参数定义了扭曲的尺度。 ### 回答3: 以下是一个可以选择扭曲图像的代码示例: ``` import cv2 import numpy as np # 加载图像 image = cv2.imread('image.jpg') height, width = image.shape[:2] # 建立图像的网格点坐标矩阵 x, y = np.meshgrid(np.arange(width), np.arange(height)) x = x.flatten() y = y.flatten() # 创建畸变效果 distorted_x = x + np.sin(y/10.)*20 distorted_y = y + np.sin(x/10.)*20 # 将畸变后的坐标映射回原始图像坐标范围内 distorted_x = np.clip(distorted_x, 0, width-1) distorted_y = np.clip(distorted_y, 0, height-1) # 对畸变后的坐标进行插值,获得畸变后的图像 distorted_image = cv2.remap(image, distorted_x.astype(np.float32), distorted_y.astype(np.float32), interpolation=cv2.INTER_LINEAR) # 显示原始图像和畸变后的图像 cv2.imshow('Original Image', image) cv2.imshow('Distorted Image', distorted_image) cv2.waitKey(0) cv2.destroyAllWindows() ``` 上述代码使用OpenCV库对图像进行操作。首先,它加载要扭曲的图像,并获取图像的宽度和高度。然后,建立图像的网格点坐标矩阵。接下来,通过添加正弦曲线,创建了扭曲效果,并将扭曲后的坐标映射回原始图像坐标范围内。最后,通过插值运算得到最终的扭曲图像,并将原始图像和扭曲图像显示出来。

相关推荐

### 回答1: 以下是用Python实现图像扭曲的示例代码: python import cv2 import numpy as np img = cv2.imread('example.png') rows, cols, ch = img.shape # 定义扭曲函数 def distort(img, fx, fy): rows, cols, ch = img.shape dest=np.zeros((rows,cols,ch),dtype=np.uint8) for i in range(rows): for j in range(cols): # 计算目标像素坐标 dest_x = i + (j - cols/2) * fx dest_y = j + (i - rows/2) * fy # 如果目标坐标在图像范围内,则进行双线性插值 if dest_x >= 0 and dest_x < rows and dest_y >= 0 and dest_y < cols: x1, x2 = int(dest_x), min(int(dest_x)+1, rows-1) y1, y2 = int(dest_y), min(int(dest_y)+1, cols-1) p1 = img[x1, y1] * (x2-dest_x)*(y2-dest_y) p2 = img[x2, y1] * (dest_x-x1)*(y2-dest_y) p3 = img[x1, y2] * (x2-dest_x)*(dest_y-y1) p4 = img[x2, y2] * (dest_x-x1)*(dest_y-y1) dest[i][j] = p1 + p2 + p3 + p4 return dest # 扭曲图像 distorted_img = distort(img, 0.002, 0.002) # 显示原始图像和扭曲后的图像 cv2.imshow('Original', img) cv2.imshow('Distorted', distorted_img) cv2.waitKey(0) cv2.destroyAllWindows() 代码的核心是扭曲函数 distort,该函数计算目标像素坐标,然后进行双线性插值,最终返回扭曲后的图像。在主函数中,我们读入一个示例图像,并将其扭曲后展示出来。你可以尝试调整 distort 函数中的 fx 和 fy 参数,改变扭曲的程度。 ### 回答2: 要编写一个能够扭曲图像的代码,可以使用以下步骤: 1. 导入所需的库和模块,如OpenCV和NumPy。 2. 使用OpenCV中的imread()函数读取图像,并将其存储在一个变量中。 3. 计算图像的宽度和高度,以便于在后面的操作中使用。 4. 创建一个空白的图像,与原始图像具有相同的尺寸和通道数。 5. 使用for循环遍历原始图像中的每个像素。 6. 在遍历像素的过程中,可以根据需要对像素的位置进行扭曲操作。例如,可以计算新的位置坐标,基于原始坐标应用一些数学公式,从而改变像素的位置。 7. 根据计算得到的新的像素位置,将原始图像中的像素值复制到新的图像中的相应位置。 8. 使用OpenCV中的imwrite()函数将扭曲后的图像保存到本地。 下面是一个示例代码,用于将图像垂直方向上扭曲: python import cv2 import numpy as np # 读取图像 image = cv2.imread('input_image.jpg') # 获取图像的宽度和高度 height, width = image.shape[:2] # 创建空白图像 distorted_image = np.zeros((height, width, 3), dtype=np.uint8) # 扭曲图像 for y in range(height): for x in range(width): new_y = (y + int(20 * np.sin(2 * np.pi * x / 200))) % height # 通过正弦函数使图像扭曲 distorted_image[y, x] = image[new_y, x] # 保存扭曲后的图像 cv2.imwrite('distorted_image.jpg', distorted_image) 请注意,上述代码仅提供了一个基本的图像扭曲示例。实际情况中,您可能需要根据具体需求对像素进行更复杂的扭曲操作,或者使用其他算法和技术来实现更高级的扭曲效果。 ### 回答3: 以下是一个使用Python编写的简单图像扭曲代码示例: python import cv2 import numpy as np def distort_image(image, strength): height, width, _ = image.shape # 创建一个空图像,用于存储扭曲后的图像 distorted_image = np.zeros(image.shape, dtype=np.uint8) for y in range(height): for x in range(width): # 根据当前像素的坐标和扭曲强度计算偏移量 offset_x = int((strength/height) * np.sin(2*np.pi*y/width)) offset_y = int((strength/width) * np.cos(2*np.pi*x/height)) # 计算扭曲后的像素位置 new_x = (x + offset_x) % width new_y = (y + offset_y) % height # 将原始图像的像素复制到扭曲图像 distorted_image[new_y, new_x] = image[y, x] return distorted_image # 读取图像 image = cv2.imread("image.jpg") # 扭曲图像 distorted_image = distort_image(image, strength=50) # 显示原始图像和扭曲图像 cv2.imshow("Original Image", image) cv2.imshow("Distorted Image", distorted_image) cv2.waitKey(0) cv2.destroyAllWindows() 该代码通过使用正弦和余弦函数来计算每个像素在x和y坐标方向上的偏移量,根据这些偏移量计算出扭曲后的像素位置,并将原始图像的像素复制到相应的位置上,从而实现图像的扭曲效果。在这个示例中,扭曲的强度为50,您可以根据自己的需求调整这个值来获得不同程度的图像扭曲效果。
### 回答1: 以下是使用Python PIL库实现图片扭曲的代码示例: from PIL import Image, ImageDraw # 读取图片 image = Image.open("example.jpg") # 创建画布 draw = ImageDraw.Draw(image) # 图片大小 width, height = image.size # 扭曲强度 scale = 30 # 扭曲图片 for x in range(width): for y in range(height): draw.point((x + scale * sin(y / 20.0), y + scale * sin(x / 20.0))) # 保存图片 image.save("twisted.jpg") 其中,scale表示扭曲强度,值越大扭曲越明显,而sin()函数用于控制扭曲的形状。如果需要不同形状的扭曲,可以尝试修改sin()函数的参数。 ### 回答2: 要实现图片扭曲,可以使用Python的PIL库。下面是一个简单的示例代码: python from PIL import Image from PIL import ImageFilter def distort_image(image_path): # 打开图片 image = Image.open(image_path) # 创建一个新的空白图片,大小与原图片一致 distorted_image = Image.new('RGB', image.size) # 图片扭曲参数 scaleX = 20 scaleY = 30 # 遍历原图片的每个像素点 for x in range(image.width): for y in range(image.height): # 根据扭曲参数计算出新的坐标 dist_x = x + int(scaleX * ((-1) ** (y % 2)) * y / image.height) dist_y = y + int(scaleY * ((-1) ** (x % 2)) * x / image.width) # 判断新的坐标是否在图片范围内 if dist_x >= 0 and dist_x < image.width and dist_y >= 0 and dist_y < image.height: # 获取原图片对应坐标的像素颜色,并在新图片对应位置设置颜色 distorted_image.putpixel((dist_x, dist_y), image.getpixel((x, y))) # 对扭曲后的图片进行滤波处理,提高图片质量 filtered_image = distorted_image.filter(ImageFilter.SHARPEN) # 显示或保存结果图片 filtered_image.show() # filtered_image.save('distorted_image.jpg') # 调用函数进行图片扭曲 distort_image('input_image.jpg') 这段代码首先使用Image.open()打开指定的图片,然后通过Image.new()创建一个空白的图片来存储扭曲后的结果。然后使用两个参数scaleX和scaleY来控制图片的扭曲程度。接下来的两个嵌套的for循环用来遍历原图片的每一个像素点,然后根据扭曲参数计算出新的坐标,并将原图片对应坐标的像素颜色赋值给新图片的对应位置。最后使用ImageFilter.SHARPEN进行滤波处理,提高图片质量,并使用show()方法显示结果图片或使用save()方法保存结果图片。最后调用该函数,传入要扭曲的图片的路径即可实现图片扭曲操作。 ### 回答3: 要使用Python PIL库实现图片扭曲,可以使用以下代码: python from PIL import Image from PIL import ImageChops from PIL import ImageEnhance from PIL import ImageOps def distort_image(image, scale=20): # 生成扭曲图像的尺寸 size = (image.size[0]*scale//100, image.size[1]) # 缩小图像以提高处理速度 small_image = image.resize(size) # 创建水平对齐的背景图像 background = Image.new('RGBA', image.size, (255, 255, 255, 0)) background.paste(small_image, ((image.size[0]-size[0])//2, 0)) # 应用图像效果,如拉伸、翻转等 distorted_image = ImageChops.difference(background, image) distorted_image = ImageOps.autocontrast(distorted_image) distorted_image = ImageEnhance.Brightness(distorted_image).enhance(2.0) distorted_image = ImageEnhance.Sharpness(distorted_image).enhance(2.0) distorted_image = ImageOps.autocontrast(distorted_image) distorted_image = distorted_image.crop((0, 0, image.size[0], image.size[1])) # 返回扭曲后的图像 return distorted_image # 加载原始图像 image = Image.open('input.jpg') # 扭曲图像 distorted_image = distort_image(image, scale=20) # 保存扭曲后的图像 distorted_image.save('distorted.jpg') 该代码首先使用PIL库打开原始图像,然后定义了一个distort_image函数,该函数接受一个图像和一个扭曲规模参数(默认为20),然后生成并返回扭曲后的图像。函数内部,首先根据扭曲规模缩小图像,并在背景图像上水平居中放置。然后,通过对图像应用一系列图像效果(如差异、自动对比度、亮度增强、锐化等),得到扭曲的效果。最后,通过裁剪以去除可能出现的边框,返回扭曲后的图像。 最后,通过调用distort_image函数,传入原始图像和扭曲规模,得到扭曲后的图像,并保存到文件中。
要在 Python 中实现图像上的文字扭曲变形,可以使用 Python 的 Pillow 库和 OpenCV 库。下面是一个简单的示例代码,可以帮助您实现这个功能: python from PIL import Image, ImageDraw, ImageFont, ImageFilter import cv2 import numpy as np # 创建图片对象 img = Image.new('RGB', (500, 500), (255, 255, 255)) # 创建绘图对象 draw = ImageDraw.Draw(img) # 设置字体样式 font = ImageFont.truetype('arial.ttf', 50) # 绘制文字 draw.text((100, 200), 'Hello World', font=font, fill=(0, 0, 0)) # 转换为 OpenCV 格式 img_cv2 = cv2.cvtColor(np.array(img), cv2.COLOR_RGB2BGR) # 图像扭曲 rows, cols, _ = img_cv2.shape pts1 = np.float32([[100, 200], [200, 200], [100, 300]]) pts2 = np.float32([[120, 220], [220, 180], [120, 320]]) M = cv2.getAffineTransform(pts1, pts2) img_warp = cv2.warpAffine(img_cv2, M, (cols, rows)) # 转换为 Pillow 格式 img_warp = Image.fromarray(cv2.cvtColor(img_warp, cv2.COLOR_BGR2RGB)) # 添加模糊效果 img_warp = img_warp.filter(ImageFilter.GaussianBlur(radius=2)) # 显示图片 img_warp.show() 在上面的代码中,我们首先使用 Pillow 库创建了一个白色背景的图片,并在上面绘制了黑色的文字。然后,我们将图片转换为 OpenCV 格式,并使用 getAffineTransform() 方法计算出扭曲变形的矩阵 M。最后,我们使用 warpAffine() 方法对图像进行扭曲变形,并将结果转换为 Pillow 格式。为了使效果更加真实,我们还添加了一个高斯模糊的滤镜效果。 您可以根据需要修改代码中的参数,以达到不同的扭曲变形效果。同时,您也可以使用更加高级的图像处理库,比如 Scikit-image 等,来实现更加复杂的扭曲效果。
以下是部分代码示例: 1. 图像翻转 python import cv2 img = cv2.imread('image.jpg') flipped_img = cv2.flip(img, 1) # 1表示水平翻转,0表示垂直翻转,-1表示水平垂直翻转 cv2.imshow('Original Image', img) cv2.imshow('Flipped Image', flipped_img) cv2.waitKey(0) 2. 图像旋转 python import cv2 img = cv2.imread('image.jpg') (h, w) = img.shape[:2] center = (w // 2, h // 2) angle = 45 # 旋转角度 M = cv2.getRotationMatrix2D(center, angle, 1.0) # 获取旋转矩阵 rotated_img = cv2.warpAffine(img, M, (w, h)) # 进行旋转 cv2.imshow('Original Image', img) cv2.imshow('Rotated Image', rotated_img) cv2.waitKey(0) 3. 图像缩放 python import cv2 img = cv2.imread('image.jpg') resized_img = cv2.resize(img, (500, 500)) # 500x500大小 cv2.imshow('Original Image', img) cv2.imshow('Resized Image', resized_img) cv2.waitKey(0) 4. 图像对比度、亮度和饱和度调整 python import cv2 img = cv2.imread('image.jpg') alpha = 1.5 # 对比度调整系数 beta = 50 # 亮度调整系数 gamma = 1.0 # 饱和度调整系数 adjusted_img = cv2.convertScaleAbs(cv2.addWeighted(img, alpha, np.zeros(img.shape, img.dtype), 0, beta), gamma) cv2.imshow('Original Image', img) cv2.imshow('Adjusted Image', adjusted_img) cv2.waitKey(0) 5. 添加噪声 python import cv2 import numpy as np img = cv2.imread('image.jpg') noise_img = img.copy() noise = np.random.randint(0, 50, img.shape) noise_img = cv2.addWeighted(noise_img, 0.5, noise, 0.5, 0) cv2.imshow('Original Image', img) cv2.imshow('Noisy Image', noise_img) cv2.waitKey(0) 6. 图像模糊 python import cv2 img = cv2.imread('image.jpg') blurred_img = cv2.GaussianBlur(img, (5, 5), 0) # 5x5大小的高斯核 cv2.imshow('Original Image', img) cv2.imshow('Blurred Image', blurred_img) cv2.waitKey(0) 7. 风格转换 python import cv2 img = cv2.imread('image.jpg') style = cv2.imread('style.jpg') stylized_img = cv2.stylization(img, style, sigma_s=60, sigma_r=0.6) # sigma_s和sigma_r是参数,可以根据需要进行调整 cv2.imshow('Original Image', img) cv2.imshow('Stylized Image', stylized_img) cv2.waitKey(0) 8. 生成对抗网络生成的python代码 由于生成对抗网络的模型比较复杂,生成的代码也比较复杂,这里只提供一个简单的示例: python import tensorflow as tf import numpy as np def generator(z, is_training=True, reuse=False): with tf.variable_scope('generator', reuse=reuse): fc1 = tf.layers.dense(z, 128) fc1 = tf.layers.batch_normalization(fc1, training=is_training) fc1 = tf.nn.relu(fc1) fc2 = tf.layers.dense(fc1, 784) img = tf.nn.tanh(fc2) return img def discriminator(img, is_training=True, reuse=False): with tf.variable_scope('discriminator', reuse=reuse): fc1 = tf.layers.dense(tf.reshape(img, [-1, 784]), 128) fc1 = tf.layers.batch_normalization(fc1, training=is_training) fc1 = tf.nn.leaky_relu(fc1, alpha=0.2) logits = tf.layers.dense(fc1, 1) return logits z = tf.placeholder(tf.float32, [None, 100]) real_img = tf.placeholder(tf.float32, [None, 28, 28, 1]) G = generator(z) D_real = discriminator(real_img) D_fake = discriminator(G, reuse=True) D_loss_real = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=D_real, labels=tf.ones_like(D_real))) D_loss_fake = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=D_fake, labels=tf.zeros_like(D_fake))) D_loss = D_loss_real + D_loss_fake G_loss = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits(logits=D_fake, labels=tf.ones_like(D_fake))) D_vars = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, scope='discriminator') G_vars = tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES, scope='generator') D_opt = tf.train.AdamOptimizer(learning_rate=0.0002).minimize(D_loss, var_list=D_vars) G_opt = tf.train.AdamOptimizer(learning_rate=0.0002).minimize(G_loss, var_list=G_vars) sess = tf.Session() sess.run(tf.global_variables_initializer()) for i in range(10000): batch_z = np.random.uniform(-1, 1, [batch_size, 100]) batch_imgs = ... _, D_loss_curr = sess.run([D_opt, D_loss], feed_dict={z: batch_z, real_img: batch_imgs}) _, G_loss_curr = sess.run([G_opt, G_loss], feed_dict={z: batch_z}) if i % 1000 == 0: print('Step %d, D_loss=%.4f, G_loss=%.4f' % (i, D_loss_curr, G_loss_curr))

最新推荐

基于51单片机的usb键盘设计与实现(1).doc

基于51单片机的usb键盘设计与实现(1).doc

"海洋环境知识提取与表示:专用导航应用体系结构建模"

对海洋环境知识提取和表示的贡献引用此版本:迪厄多娜·察查。对海洋环境知识提取和表示的贡献:提出了一个专门用于导航应用的体系结构。建模和模拟。西布列塔尼大学-布雷斯特,2014年。法语。NNT:2014BRES0118。电话:02148222HAL ID:电话:02148222https://theses.hal.science/tel-02148222提交日期:2019年HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire论文/西布列塔尼大学由布列塔尼欧洲大学盖章要获得标题西布列塔尼大学博士(博士)专业:计算机科学海洋科学博士学院对海洋环境知识的提取和表示的贡献体系结构的建议专用于应用程序导航。提交人迪厄多内·察察在联合研究单位编制(EA编号3634)海军学院

react中antd组件库里有个 rangepicker 我需要默认显示的当前月1号到最后一号的数据 要求选择不同月的时候 开始时间为一号 结束时间为选定的那个月的最后一号

你可以使用 RangePicker 的 defaultValue 属性来设置默认值。具体来说,你可以使用 moment.js 库来获取当前月份和最后一天的日期,然后将它们设置为 RangePicker 的 defaultValue。当用户选择不同的月份时,你可以在 onChange 回调中获取用户选择的月份,然后使用 moment.js 计算出该月份的第一天和最后一天,更新 RangePicker 的 value 属性。 以下是示例代码: ```jsx import { useState } from 'react'; import { DatePicker } from 'antd';

基于plc的楼宇恒压供水系统学位论文.doc

基于plc的楼宇恒压供水系统学位论文.doc

"用于对齐和识别的3D模型计算机视觉与模式识别"

表示用于对齐和识别的3D模型马蒂厄·奥布里引用此版本:马蒂厄·奥布里表示用于对齐和识别的3D模型计算机视觉与模式识别[cs.CV].巴黎高等师范学校,2015年。英语NNT:2015ENSU0006。电话:01160300v2HAL Id:tel-01160300https://theses.hal.science/tel-01160300v22018年4月11日提交HAL是一个多学科的开放获取档案馆,用于存放和传播科学研究文件,无论它们是否已这些文件可能来自法国或国外的教学和研究机构,或来自公共或私人研究中心。L’archive ouverte pluridisciplinaire博士之路博士之路博士之路在获得等级时,DOCTEURDE L'ÉCOLE NORMALE SUPERIEURE博士学校ED 386:巴黎中心数学科学Discipline ou spécialité:InformatiquePrésentée et soutenue par:马蒂厄·奥布里le8 may 2015滴度表示用于对齐和识别的Unité derechercheThèse dirigée par陪审团成员équipe WILLOW(CNRS/ENS/INRIA UMR 8548)慕尼黑工业大学(TU Munich�

valueError: Pandas data cast to numpy dtype of object. Check input data with np.asarray(data).

这个错误通常发生在使用 Pandas DataFrame 时,其中包含了一些不能被转换为数字类型的数据。 解决方法是使用 `pd.to_numeric()` 函数将数据转换为数字类型。例如: ```python import pandas as pd import numpy as np # 创建一个包含字符串和数字的 DataFrame df = pd.DataFrame({'A': ['a', 'b', 'c'], 'B': [1, 2, '3']}) # 尝试将整个 DataFrame 转换为数字类型会报错 np.asarray(df, dtype=np.float) # 使

基于VC--的五子棋程序设计与实现毕业设计.doc

基于VC--的五子棋程序设计与实现毕业设计.doc

体系结构驱动的普遍性应用程序中

体系结构驱动的普遍性应用程序的自主适应艾蒂安·甘德里勒引用此版本:艾蒂安·甘德里勒。由体系结构驱动的普遍性应用程序的自主适应。无处不在的计算。格勒诺布尔大学,2014年。法语。NNT:2014GRENM078。电话:01215004HAL ID:电话:01215004https://theses.hal.science/tel-01215004提交日期:2015年HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire论文要获得的等级格勒诺布尔大学博士专业:计算机科学部长令:2006年提交人艾蒂安·G·安德里尔论文由Philippe LAlanda指导由Stephanie CHollet共同指导在格勒诺布尔计算机科学实验室编写数学、信息科学与技术、计算机科学博士体系结构驱动的普遍性应用程序的自主适应论文�

STM32F103 RCT6 LCD显示正弦波并且设置可以调节振幅的触摸按键代码

以下是基于STM32F103RCT6和Keil MDK-ARM开发环境的LCD显示正弦波并且设置可以调节振幅的触摸按键代码: ```c #include "stm32f10x.h" #include "lcd.h" //LCD驱动库 #include "math.h" //数学库 #define PI 3.14159 //圆周率 void delay_ms(uint16_t n); int main(void) { float amplitude = 20; //振幅 float frequency = 1; //频率 float phase = 0; //相位

我国软件和信息技术服务业的发展现状及存在的问题.pdf

我国软件和信息技术服务业的发展现状及存在的问题.pdf