我正在进行图像处理特征提取.我有一张鸟的照片,我必须在那里提取鸟类区域并告诉它鸟的颜色.我使用canny特征提取方法来获取鸟的边缘.
如何只提取鸟类区域,使背景为蓝色?
openCv解决方案也应该没问题.
import skimage
import numpy as np
%matplotlib inline
import matplotlib.pyplot as plt
import os
filename = os.path.join(os.getcwd(),'image\image_bird.jpeg')
from skimage import io
bird =io.imread(filename,as_grey=True)
plt.imshow(bird)
Run Code Online (Sandbox Code Playgroud)
from skimage import feature
edges = feature.canny(bird,sigma=1)
plt.imshow(edges )
Run Code Online (Sandbox Code Playgroud)
实际鸟类图像可以从鸟类链接中获取
使用CV - 提取两个图像之间的差异中解释的方法,我们可以识别两个对齐图像之间的差异。
当摄像机角度(视角)和光照条件略有不同时,如何使用 OpenCV 做到这一点?
从代码如何搭配和使用对齐功能,SURF(Python的OpenCV的)两个图像?有助于旋转/对齐两个图像,但由于透视变换(“单应性”)的结果并不完美,“差异”算法在这里不能很好地工作。
例如,如何从这 2 张照片中仅获得绿色贴纸(= 差异)?
opencv image-processing image-recognition homography difference
我有两张图片,并想让它们之间的区别显而易见。我想为两个图像添加颜色,以便用户可以在一两秒钟内清楚地发现所有差异。
例如,这是两张图片,但有一些区别:
leftImage.jpg:
rightImage.jpg:
我当前使差异明显的方法是创建一个蒙版(两个图像之间的差异),将其涂成红色,然后将其添加到图像中。目的是用强烈的红色清楚地标记所有差异。这是我当前的代码:
import cv2
# load images
image1 = cv2.imread("leftImage.jpg")
image2 = cv2.imread("rightImage.jpg")
# compute difference
difference = cv2.subtract(image1, image2)
# color the mask red
Conv_hsv_Gray = cv2.cvtColor(difference, cv2.COLOR_BGR2GRAY)
ret, mask = cv2.threshold(Conv_hsv_Gray, 0, 255,cv2.THRESH_BINARY_INV |cv2.THRESH_OTSU)
difference[mask != 255] = [0, 0, 255]
# add the red mask to the images to make the differences obvious
image1[mask != 255] = [0, 0, 255]
image2[mask != 255] = [0, 0, 255]
# store images
cv2.imwrite('diffOverImage1.png', image1)
cv2.imwrite('diffOverImage2.png', image1) …Run Code Online (Sandbox Code Playgroud)