opencvを新しくしました。私は複数の画像を持っています。サンプル画像の1つは、左下隅に表示されています。基本的には、背景と前景を分離してエッジが鮮明になり、輪郭を適切に検出できるようにしたい。OpenCV pythonスタンプフィルターPhotoshop
私は様々なパラメータを使用して多くのフィルタともちろん閾値を試しました。私はPhotoshopのフィルターギャラリーで見ていた最後
は、私は私に望ましい結果(右上隅)を与えているフィルタと呼ばれるスタンプに気づきました。それはエッジをはっきりとさせ、柔らかいコーナーにある程度のぼかしを使用すると思います。
私は、Photoshopのスタンプフィルタと同じ操作をPython CV2を使ってどのように得ることができないのですか?
ご協力いただきありがとうございます。
オリジナル手つかずの画像
試み1: - コード
import cv2
import numpy as np
from matplotlib import pyplot as plt
input_img = cv2.imread('images/Tas/t3.bmp')
desired_img = cv2.imread('images/stamp.jpg')
# gray scale
gray = cv2.cvtColor(input_img, cv2.COLOR_BGR2GRAY)
kernel = np.ones((3,3),np.uint8)
thresh1 = cv2.threshold(input_img,80,255,cv2.THRESH_BINARY)[1]
erosion1 = cv2.erode(thresh1,kernel,iterations = 1)
dilation1 = cv2.dilate(erosion1,kernel,iterations = 1)
thresh2 = cv2.threshold(input_img,120,255,cv2.THRESH_BINARY)[1]
erosion2 = cv2.erode(thresh2,kernel,iterations = 1)
dilation2 = cv2.dilate(erosion2,kernel,iterations = 1)
titles = ['Original', 'Desired','thresh1', 'erosion1','dilation1','thresh2','erosion2','dilation2']
images = [input_img, desired_img, thresh1, erosion1,dilation1, thresh2,erosion2, dilation2]
for i in xrange(8):
plt.subplot(2,4,i+1),plt.imshow(images[i])
plt.title(titles[i])
plt.xticks([]),plt.yticks([])
plt.show()
出力:
2進化、恐らく浸食と膨張のように見えます。元の手つかずの画像も表示 –
こんにちは@AnderBiguriちょうど元の画像を追加しました。 – VK321
@アンダービグリ..どんな助け? – VK321