""" Author:XiaoMa date:2021/11/2 """ import cv2 import numpy as np import matplotlib.pyplot as plt img0 = cv2.imread("E:\putout\scene00001.png") img1 = cv2.resize(img0, dsize=None, fx=1, fy=1) img2 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY) h, w = img1.shape[:2] print(h, w) cv2.namedWindow("W0") cv2.imshow("W0", img2) cv2.waitKey(delay=0) # 图像进行二值化 ##第一种阈值类型 ret0, img3 = cv2.threshold(img2, 127, 255, cv2.THRESH_BINARY) print(ret0) ##第二种阈值类型 ret1, img4 = cv2.threshold(img2, 127, 255, cv2.THRESH_BINARY_INV) print(ret1) ##第三种阈值类型 ret2, img5 = cv2.threshold(img2, 127, 255, cv2.THRESH_TRUNC) print(ret2) ##第四种阈值类型 ret3, img6 = cv2.threshold(img2, 127, 255, cv2.THRESH_TOZERO) print(ret3) ##第五种阈值类型 ret4, img7 = cv2.threshold(img2, 127, 255, cv2.THRESH_TOZERO) print(ret4) # 将所有阈值类型得到的图像绘制到同一张图中 plt.rcParams['font.family'] = 'SimHei' # 将全局中文字体改为黑体 figure = [img3] title = ret0["原图", "第一种阈值类型", "第二种阈值类型", "第三种阈值类型", "第四种阈值类型", "第五种阈值类型"] for i in range(6): figure[i] = cv2.cvtColor(figure[i], cv2.COLOR_BGR2RGB) # 转化图像通道顺序,这一个步骤要记得 plt.subplot(3, 2, i + 1) plt.imshow(figure[i]) plt.title(title[i]) # 添加标题 plt.savefig("E:\putout") 这串代码哪里有问题
时间: 2023-06-03 10:03:50 浏览: 158
这段代码使用Python中的OpenCV库及其相关函数导入一张本地图片,进行了缩放、颜色空间转换等操作。其中,cv2.imread()函数读取位于本地路径"E:\putout\scene00001.png"的图片,cv2.resize()对图片进行了大小重置,而cv2.cvtColor()则将图片从BGR颜色空间转换为灰度颜色空间。最后,使用cv2.namedWindow()和cv2.imshow()将转换后的图片显示出来。
相关问题
file_put_contents(/www/wwwroot/xiaoma/runtime/temp/6d5c78a0905e0939c9ccf18fc6b7bed0.php): failed to open stream: Permission denied
这个错误与之前提到的错误相似,也是由于文件或目录的权限不足引起的。
要解决这个问题,你可以尝试以下几种方法:
1. 检查目标文件夹的权限:确保目标文件夹对于 PHP 进程具有写入权限。你可以使用 `ls -l` 命令来查看目标文件夹的权限设置,并使用 `chmod` 命令来更改权限。
例如:`chmod -R 777 /www/wwwroot/xiaoma/runtime/temp`
注意:在生产环境中,为了安全起见,不建议将权限设置为 777。你可以根据实际需求设置适当的权限。
2. 检查目标文件是否已被占用:如果目标文件已被其他进程占用,PHP 将无法写入该文件。你可以尝试删除或移动该文件,然后再次运行脚本。
3. 检查目标文件是否存在:如果目标文件不存在,PHP 将尝试创建该文件。请确保目标文件的路径和名称是正确的,并且不存在同名的目录。
4. 检查磁盘空间:如果磁盘空间已满,PHP 将无法写入新文件。请确保磁盘有足够的可用空间。
如果以上方法都无法解决问题,你可能需要联系服务器管理员或 PHP 开发人员以获取更多帮助。
file_put_contents(/www/wwwroot/xiaoma/runtime/cache/4e/819c837d54a6ed09abc77a8560a66f.php): failed to open stream: Permission denied
您好!根据您提供的错误信息,看起来是由于权限问题导致无法写入文件。
错误提示中指出了文件路径`/www/wwwroot/xiaoma/runtime/cache/4e/819c837d54a6ed09abc77a8560a66f.php`,而在尝试将内容写入该文件时出现了权限被拒绝的错误。
解决这个问题的一种方法是确保您的应用程序具有足够的权限来写入该文件。您可以尝试以下步骤:
1. 检查目标文件所在的目录是否具有写入权限。您可以使用命令`ls -l`查看文件所在目录的权限,并确保您的应用程序具有写入权限。
2. 如果目录权限正确,但仍无法写入文件,请确保文件本身没有被其他进程或用户锁定或占用。您可以尝试使用命令`lsof /www/wwwroot/xiaoma/runtime/cache/4e/819c837d54a6ed09abc77a8560a66f.php`查看是否有其他进程正在使用该文件。
3. 如果文件被占用,您可以尝试终止占用该文件的进程或者更改文件的路径和名称,以避免冲突。
4. 另外,还要确保您的应用程序在运行时具有足够的权限来写入文件。这可能涉及到更改应用程序运行的用户或组,或者更改文件系统的访问控制列表(ACL)。
请根据您的具体环境和需求,采取适当的措施来解决权限问题。
阅读全文