读取图像

可以使用opencv,也可以使用skimage,记住他们的区别:

  1. 读图:opencv读图进来是BGR,而skimage是RGB。
  2. 显示:opencv的接口使用BGR,而matplotlib.pyplot 则是RGB模式。

提取图像纹理

1.local_binary_pattern

from skimage.feature import local_binary_pattern
import cv2

# 读取图像
image = cv2.imread('1.png')

# 转换为灰度图
image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 处理
lbp = local_binary_pattern(image, n_points, radius)

这里实现对灰度图的纹理提取。

如何提取一张RGB图片的纹理颜色呢?

from __future__ import division

import skimage.io
import skimage.feature
import skimage.color
import skimage.transform
import skimage.util
import skimage.segmentation
import numpy

import matplotlib.pyplot as plt

from skimage.segmentation import felzenszwalb
from skimage.data import coffee

img = coffee()

****for colour_channel in (0, 1, 2):
    img[:, :, colour_channel] = skimage.feature.local_binary_pattern(
        img[:, :, colour_channel], 8,1.0,method='var')****

plt.imshow(img)
plt.show()

纹理映射

1. 纹理映射(Texture Mapping)

我们通过数字化技术把纹理图案覆盖或者映射或者投射到三位物体的表面,给物体增加表面细节的过程叫纹理映射。

2.思想

我们需要寻找一种纹理空间(U,V)坐标到三维物体曲面(s,t)坐标之间的映射关系,将纹理空间对应的坐标上对应的彩色参数值映射给曲面上,从而给曲面得到彩色的纹理细节。
其实如果我们还想给几何纹理带来的形状有所有变化,我们可以采用扰动函数给景物表面采样点的位置坐微小的扰动来改变几何形状

3.纹理映射的代码实现

def TextureFill(W, H):
    try:
        txt = cv2.imread("C:/Users/prave/PycharmProjects/graphics-hw3/data/blackwhite.png")
        txt = cv2.resize(txt, (W, H), interpolation=cv2.INTER_CUBIC)
        return txt
    except Exception, e:
        print "Texture fill failed", e

opencv 纹理合并 opencv纹理识别_灰度图


opencv 纹理合并 opencv纹理识别_纹理映射_02


opencv 纹理合并 opencv纹理识别_opencv 纹理合并_03


opencv 纹理合并 opencv纹理识别_opencv 纹理合并_04


opencv 纹理合并 opencv纹理识别_纹理映射_05


opencv 纹理合并 opencv纹理识别_opencv 纹理合并_06


opencv 纹理合并 opencv纹理识别_灰度图_07


opencv 纹理合并 opencv纹理识别_纹理映射_08


opencv 纹理合并 opencv纹理识别_读取图像_09


opencv 纹理合并 opencv纹理识别_纹理映射_10


opencv 纹理合并 opencv纹理识别_纹理映射_11

opencv 纹理合并 opencv纹理识别_纹理映射_12


opencv 纹理合并 opencv纹理识别_灰度图_13


opencv 纹理合并 opencv纹理识别_opencv 纹理合并_14


opencv 纹理合并 opencv纹理识别_灰度图_15

opencv 纹理合并 opencv纹理识别_opencv 纹理合并_16


opencv 纹理合并 opencv纹理识别_读取图像_17

opencv 纹理合并 opencv纹理识别_纹理映射_18


opencv 纹理合并 opencv纹理识别_灰度图_19


opencv 纹理合并 opencv纹理识别_opencv 纹理合并_20


opencv 纹理合并 opencv纹理识别_读取图像_21


opencv 纹理合并 opencv纹理识别_纹理映射_22


opencv 纹理合并 opencv纹理识别_opencv 纹理合并_23


opencv 纹理合并 opencv纹理识别_读取图像_24

参考

关于LBP算法的skimage.feature.local_binary_pattern()函数解析

python-LBP特征

计算机图形学之纹理的作用

颜色和纹理的描述