3

基本的な Google 検索では、この SO の質問と、優れた回答と思われるものが見つかります。ただし、試してみると、ぼやけた画像のシャープ化にはまったく効果がありません。

私が何か完全に間違っているかどうかを誰かが明確にすることはできますか?

これまでに行ったことは、画像に filter2D 関数を実装してランダム ノイズを除去することです。これにより、周期的なノイズもぼやけます。これは優れています。ノイズをぼかすことができたので、画像をシャープにして、元の画像よりもノイズの少ない画像を表示したいと考えています。これが私のコードです:-

   anchor = Point( -1, -1 );
   delta = 0;
   ddepth = -1;
   dst = frame;
   dst2 = image;

  filter2D(src, dst, ddepth , kernel, anchor, delta, BORDER_DEFAULT );

  cv::GaussianBlur(frame, image, cv::Size(0, 0), 11);
  cv::addWeighted(frame, 1.5, image, -0.5, 0, image);

gaussianblur と addWeighted、画像に何の違いもありません。また、明確にするために、コードエラーもまったくありません。

4

3 に答える 3

13

適切な画像で機能させるために、次の両方のアプローチを確認できます。OpenCV 3.0.0 を使用してコーディングを行いました。

import cv2

x = 'Columbia river.jpg'
img = cv2.imread(x, 1)
cv2.imshow("Original",img)

ここに画像の説明を入力

#---Approach 1---
#---Sharpening filter----
kernel = np.array([[-1,-1,-1], [-1,9,-1], [-1,-1,-1]])
im = cv2.filter2D(img, -1, kernel)
cv2.imshow("Sharpening",im)

ここに画像の説明を入力

#---Approach 2---
aw = cv2.addWeighted(img, 4, cv2.blur(img, (30, 30)), -4, 128)
cv2.imshow("Add_weighted", aw)

ここに画像の説明を入力

于 2016-10-14T09:20:21.113 に答える
4

将来の読者のために、コードは機能しますが、私の画像が非常にぼやけているだけで、上記のコードは目に見える効果がありませんでした!

于 2013-11-16T22:06:54.410 に答える