cv2.imwrite()在循环中的使用形式
时间: 2024-01-16 12:09:24 浏览: 11
cv2.imwrite()函数可以在循环中使用,如下所示:
```
import cv2
import glob
for file in glob.glob("*.jpg"):
img = cv2.imread(file)
# 进行图像处理
# ...
# 保存图像
cv2.imwrite("processed_" + file, img)
```
这个例子中,程序首先使用glob模块找到所有后缀为.jpg的文件,然后进入循环,读取每个图像文件并进行处理,最后使用cv2.imwrite()函数保存处理后的图像。注意,保存文件时需要指定文件名和文件格式,这里使用了原始文件名前面加上"processed_"的方式。
相关问题
翻译代码def resize(): img_path = "Normalresult" save_path = "result" img_names = os.listdir(img_path) # 以列表的形式获取文件夹中的所有文件的名字和格式(例如:0.jpg) for img_name in img_names: img = os.path.join(img_path, img_name) # 将文件的绝对路径与每个文件名字进行拼接,以获取该文件 img = cv2.imread(img) # 读取该文件(图片) # 一是通过设置图像缩放比例,即缩放因子,来对图像进行放大或缩小 res1 = cv2.resize(img, None, fx=2, fy=2, interpolation=cv2.INTER_LINEAR) height, width = img.shape[:2] # 二是直接设置图像的大小,不需要缩放因子 res2 = cv2.resize(img, (int(0.8 * width), int(0.8 * height)), interpolation=cv2.INTER_AREA) dir_name1 = ''.join(random.sample(string.ascii_letters + string.digits, 8)) dir_name2 = ''.join(random.sample(string.ascii_letters + string.digits, 8)) cv2.imwrite(os.path.join(save_path, dir_name1 + '.jpg'), res1) cv2.imwrite(os.path.join(save_path, dir_name2 + '.jpg'), res2) cv2.imwrite(os.path.join(save_path, img_name), img)
这段代码的作用是对指定路径下的所有图片进行缩放,并将缩放后的图片保存到指定的保存路径中。具体来说,代码首先使用 os 库中的 listdir 函数获取指定路径下所有图片的文件名,并使用循环遍历每个图片文件名。在循环中,代码使用 os 库中的 join 函数将指定路径和当前图片文件名拼接成完整的路径,并使用 cv2 库中的 imread 函数读取当前图片。
接着,代码使用 cv2 库中的 resize 函数对当前图片进行两种缩放方式的处理。第一种方式是通过设置缩放因子 fx 和 fy 来对图像进行放大或缩小,得到缩放后的图像 res1。第二种方式是直接设置缩放后的图像的大小,得到缩放后的图像 res2。
然后,代码使用 random 和 string 库中的函数生成随机的文件名,并使用 cv2 库中的 imwrite 函数将缩放后的图像 res1 和 res2 以及原始图像 img 分别保存到指定的保存路径中。最后,代码继续循环处理下一个图片。
import cv2 vc = cv2.VideoCapture('D:/pythonProject/datafloc/900ml50r.mp4') # 读入视频文件 c = 1 d = 0 if vc.isOpened(): # 判断是否正常打开 rval, frame = vc.read() else: rval = False timeF = 30 # 视频帧计数间隔频率 # try: while rval: # 循环读取视频帧 rval, frame = vc.read() if (c % timeF == 0): # 每隔timeF帧进行存储操作 d = d+1 cv2.imwrite('D:/pythonProject/datafloc/900ml50r/900ml50r' + str(d) + '.jpg', frame) # 存储为图像 print(d) c = c + 1 cv2.waitKey(1) vc.release()根据此段代码将图片输出为256x256的形式并保证图片不被压缩
可以在存储为图像的代码行中添加如下代码,将其调整为256x256的形式并保证图片不被压缩:
```python
cv2.imwrite('D:/pythonProject/datafloc/900ml50r/900ml50r' + str(d) + '.png', cv2.resize(frame, (256, 256)), [cv2.IMWRITE_PNG_COMPRESSION, 0])
```
其中,`cv2.resize()`函数用于调整图像大小,第一个参数为原始图像,第二个参数为目标大小。`[cv2.IMWRITE_PNG_COMPRESSION, 0]`参数用于指定PNG格式的压缩程度,0表示不压缩。这样就可以保证图片不被压缩了。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)