云趣在线企业网站建设,网站接口需求,小程序开发需要服务器吗,有企业邮箱案例的网站来源#xff1a;投稿 作者#xff1a;蓬蓬奇 编辑#xff1a;学姐 深度学习数据预处理中常用opencv读入图片#xff0c;一般在__getitem__函数中调用。本文主要介绍opencv读取图片的一些细节以及注意事项。本文中使用的图片见第6节“opencv测试使用的图片”。
1.如何通过o… 来源投稿 作者蓬蓬奇 编辑学姐 深度学习数据预处理中常用opencv读入图片一般在__getitem__函数中调用。本文主要介绍opencv读取图片的一些细节以及注意事项。本文中使用的图片见第6节“opencv测试使用的图片”。
1.如何通过opencv显示图片
通过Jupyter Notebook运行OpenCV运行cv2.imshow()时报错。
import cv2img cv2.imread(img_path, cv2.IMREAD_UNCHANGED)
cv2.imshow(img, img)报错
---------------------------------------------------------------------------
error Traceback (most recent call last)
Input In [60], in cell line: 1()
---- 1 cv2.imshow(img, img)error: OpenCV(4.6.0) /io/opencv/modules/highgui/src/window.cpp:1267: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function cvShowImage解决方法先卸载opencv再重新安装。未解决可直接转下述方法
conda remove opencv
conda install -c menpo opencvpip install --upgrade pip
pip install opencv-contrib-python参考链接https://blog.csdn.net/tudou2013goodluck/article/details/108402055
报错内核崩溃。
Kernel Restarting
The kernel for Untitled.ipynb appears to have died. It will restart automatically.解决方法opencv读取图片之后使用matplotlib库显示图片。
下述两个代码均可以
%matplotlib inline
from matplotlib import pyplot as plt
import cv2img cv2.imread(图片路径)
img cv2.cvtColor(img, cv2.COLOR_BGR2RGB)plt.imshow(img)
plt.show()import cv2def cv2_imshow(a, **kwargs):a a.clip(0, 255).astype(uint8)# cv2 stores colors as BGR; convert to RGBif a.ndim 3:if a.shape[2] 4:a cv2.cvtColor(a, cv2.COLOR_BGRA2RGBA)else:a cv2.cvtColor(a, cv2.COLOR_BGR2RGB)return plt.imshow(a, **kwargs)参考链接https://github.com/jupyter/notebook/issues/3935
2.opencv读入图片默认为BGR
img_path 00001.png # 图片路径
mask_path 00001_matte.png # 对应的图像分割标签路径%matplotlib inline
from matplotlib import pyplot as plt
import cv2
import numpy as npimg_bgr cv2.imread(img_path, cv2.IMREAD_COLOR)
img_rgb cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # BGR-RGBplt.imshow(img)
plt.show()第一幅图为原始图片第二幅图为BGR图片第三幅图为RGB图片。
3.opencv读入图片默认为HWC
img_rgb.shape(800, 600, 3)可以将HWC转变为CHW
img_rgb img_rgb.transpose((2, 0, 1)) # hwc -- chw4.opencv读入图片默认为nd.array形式
cv2.imread()读取图片后以多维数组的形式保存图片信息。
type(img_rgb)numpy.ndarray可以转变为torch.tensor.float()表示转变为torch.float32
img_chw_tensor torch.from_numpy(img_rgb).float()5.cv2.imread()
cv2.imread()有两个参数第一个参数filename是图片路径第二个参数flag表示图片读取模式共有三种 cv2.IMREAD_COLOR加载彩色图片这个是默认参数可以直接写1。 cv2.IMREAD_GRAYSCALE以灰度模式加载图片可以直接写0。 cv2.IMREAD_UNCHANGED包括alpha(包括透明度通道)可以直接写-1。即以不改变图片的方式打开图片是彩色就是彩色图片是灰度图像就是灰度图像。
通过cv2.IMREAD_COLOR读入灰度图三通道数值相同。
mask cv2.imread(mask_path, cv2.IMREAD_GRAYSCALE) # 读入灰度图
mask1 cv2.imread(mask_path, cv2.IMREAD_COLOR) # 读入彩色图
mask2 cv2.imread(mask_path, cv2.IMREAD_UNCHANGED) # 读入原始图片print(mask.shape) # (800, 600)
print(mask1.shape) # (800, 600, 3)
print(mask2.shape) # (800, 600)第一幅图为mask第二幅图为mask1第三幅图为mask2。
import numpy as np
np.set_printoptions(thresholdnp.inf)# np.unique(mask1[:,:,0] mask1[:,:,1])
print((mask1[:,:,0] mask1[:,:,1]).all()) # True
print((np.unique(mask1[:,:,2] mask).all()))True
True6.opencv测试使用的图片
可以右键保存下述图片调试上面代码。 关注下方《学姐带你玩AI》
回复“CVPR”领取CV顶会500多篇经典论文
码字不易欢迎大家点赞评论收藏