小编Yif*_*_Li的帖子

opencv ximgproc.slic 和 skimage scaling.slic 有什么区别?

我在同一张图片上从opencv和skimage运行SLIC(简单线性迭代聚类)超像素算法,但得到了不同的结果,skimage slic结果更好,如下图所示。第一个是opencv SLIC,第二个是skimage SLIC。我有几个问题希望someonc可以提供帮助。

  1. 为什么opencv有参数'region_size'而skimage是'n_segments'?
  2. 是否需要转换为 LAB 和 guassian 模糊?
  3. 有什么技巧可以优化 opecv SLIC 结果吗?

====================================

  • OpenCV SLIC

Opencv SLIC

  • Skimage SLIC

Skimage SLIC

# Opencv
src = cv2.imread('pic.jpg') #read image
# gaussian blur
src = cv2.GaussianBlur(src,(5,5),0)
# Convert to LAB
src_lab = cv.cvtColor(src,cv.COLOR_BGR2LAB) # convert to LAB

# SLIC
cv_slic = ximg.createSuperpixelSLIC(src_lab,algorithm = ximg.SLICO, 
region_size = 32)
cv_slic.iterate()



# Skimage
src = io.imread('pic.jpg')
sk_slic = skimage.segmentation.slic(src,n_segments = 256, sigma = 5)
Run Code Online (Sandbox Code Playgroud)

使用以下代码生成的具有超像素质心的图像

# Measure properties of labeled image regions
regions = regionprops(labels)
# Scatter …
Run Code Online (Sandbox Code Playgroud)

python opencv scikit-image

6
推荐指数
1
解决办法
2280
查看次数

opencv BGR 图像与其反向版本 RGB 图像 [:,:,::-1] 有什么区别?

我正在尝试使用 QLabel 显示 opencv 图像。我得到了两个不同版本的图像,第一个是 opencv BGR 图像,第二个是使用 image[:,:,::-1] 的 RGB 图像,BGR 版本工作正常但 RGB 版本不起作用.

以下代码工作正常

src = cv.imread('image.jpg')
h,w,ch = src.shape
bytesPerLine = ch * w
qImg = QImage(src.data, w, h, bytesPerLine, QImage.Format_RGB888)
qImg = qImg.rgbSwapped()
self.ui.label.setPixmap(QPixmap.fromImage(qImg))
Run Code Online (Sandbox Code Playgroud)


这些代码不起作用:

src = cv.imread('image.jpg')
src = src[:,:,::-1]
h,w,ch = src.shape
bytesPerLine = ch * w
qImg = QImage(src.data, w, h, bytesPerLine, QImage.Format_RGB888)
self.ui.label.setPixmap(QPixmap.fromImage(qImg))
Run Code Online (Sandbox Code Playgroud)

python opencv pyqt qimage

2
推荐指数
1
解决办法
2475
查看次数

标签 统计

opencv ×2

python ×2

pyqt ×1

qimage ×1

scikit-image ×1