サイズの異なる2枚の画像を堆肥化するCV2

MikeyB

同じサイズではない2つの画像をアルファブレンドする必要があります。同じサイズにサイズ変更することで、それらを合成することができたので、ロジックの一部を取得しました。

import cv2 as cv

def combine_two_color_images_composited(foreground_image, background_image):

    foreground = cv.resize(foreground_image, (400,400), interpolation=cv.INTER_CUBIC).copy()
    background = cv.resize(background_image, (400,400), interpolation=cv.INTER_CUBIC).copy()
    alpha =0.5
    # do composite of foreground onto the background
    cv.addWeighted(foreground, alpha, background, 1 - alpha, 0, background)

    cv.imshow('composited image', background)
    cv.waitKey(10000)

大きい方の画像と同じサイズのマスクを作って、それを最初の画像で使う必要があるのではないかと思います。もしそうなら、私はまだCV2でマスキングを行う方法を知りません....これは私のプロジェクトのほんの一部にすぎないので、マスキングがどのように機能するかを学ぶために多くの時間を費やすことができたものではありません。

私はあちこちを検索しましたが、私が見つけたコードは、画像を(並べて)一緒に「追加」するようなことをします。

Hirabayashi Taro

2つの画像を組み合わせるには、numpyスライスを使用して、前景をブレンドする背景画像の部分を選択してから、新しくブレンドした部分を背景に再度挿入します。

def combine_two_color_images(image1, image2):

    foreground, background = image1.copy(), image2.copy()

    foreground_height = foreground.shape[0]
    foreground_width = foreground.shape[1]
    alpha =0.5

    # do composite on the upper-left corner of background image.
    blended_portion = cv.addWeighted(foreground,
                alpha,
                background[:foreground_height,:foreground_width,:],
                1 - alpha,
                0,
                background)
    background[:foreground_height,:foreground_width,:] = blended_portion
    cv.imshow('composited image', background)

    cv.waitKey(10000)

編集:前景を指定された場所に配置するには、以前と同じようにnumpyインデックスを使用しますNumpyインデックス作成は非常に強力であり、多くの場合に役立ちます。上記のドキュメントをリンクしました。本当に一見の価値があります。

def combine_two_color_images_with_anchor(image1, image2, anchor_y, anchor_x):
    foreground, background = image1.copy(), image2.copy()
    # Check if the foreground is inbound with the new coordinates and raise an error if out of bounds
    background_height = background.shape[1]
    background_width = background.shape[1]
    foreground_height = foreground.shape[0]
    foreground_width = foreground.shape[1]
    if foreground_height+anchor_y > background_height or foreground_width+anchor_x > background_width:
        raise ValueError("The foreground image exceeds the background boundaries at this location")

    alpha =0.5

    # do composite at specified location
    start_y = anchor_y
    start_x = anchor_x
    end_y = anchor_y+foreground_height
    end_x = anchor_x+foreground_width
    blended_portion = cv.addWeighted(foreground,
                alpha,
                background[start_y:end_y, start_x:end_x,:],
                1 - alpha,
                0,
                background)
    background[start_y:end_y, start_x:end_x,:] = blended_portion
    cv.imshow('composited image', background)

    cv.waitKey(10000)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

画像サイズを取得するPython OpenCV2(cv2)ラッパー?

分類Dev

画像サイズを取得するPython OpenCV2(cv2)ラッパー?

分類Dev

異なるdimentions /サイズで一枚の画像にする方法

分類Dev

2つの画像をcv2でオーバーレイすると、ノイズが発生します

分類Dev

iOS-サイズの異なる2つの画像をマージする

分類Dev

CV2で2つの画像をマージする

分類Dev

openCV-pythonを使用して、2つの輪郭を同じサイズの2つの異なる画像にセグメント化する

分類Dev

CV2とnumpyを使用して画像のサイズ変更と形状変更を試みています

分類Dev

処理された画像を2値化するCV2

分類Dev

OpenCV、Python:異なるサイズと透明な背景の2つの画像をステッチする方法

分類Dev

cv2でskimage画像を使用する

分類Dev

高さサイズの異なる画像を表示する方法

分類Dev

cv2と私のカメラを使用している間の奇妙な画像

分類Dev

PILとcv2の異なるピクセル情報

分類Dev

cv::drawKeypoints が画像のサイズを変更するのはなぜですか?

分類Dev

異なるサイズの2つの2次元配列を乗算します

分類Dev

最大400枚の画像を元のサイズの.05%に縮小する最も簡単な方法

分類Dev

サイズの異なる2つの行列を乗算する方法

分類Dev

2つの異なるサイズのリストを圧縮する方法は?

分類Dev

matplotlibでサイズの異なる2つの図を結合する方法は?

分類Dev

条件付きでサイズの異なる2つのdf列を追加する

分類Dev

サイズの異なる2つの列(パンダ)を分割する方法は?

分類Dev

異なるサイズの2D信号の相関を計算する

分類Dev

WPF:異なるサイズの2つのラベルを配置する方法

分類Dev

Java、異なるサイズの2つのarrayListを追加する方法

分類Dev

Rでサイズの異なる2つの行列をマージする

分類Dev

サイズの異なる2つのリストにassertNotEqualsを使用する方法

分類Dev

C でサイズの異なる 2 つの文字列をマージする

分類Dev

異なるサイズの 2 つの行列を locb で乗算する

Related 関連記事

  1. 1

    画像サイズを取得するPython OpenCV2(cv2)ラッパー?

  2. 2

    画像サイズを取得するPython OpenCV2(cv2)ラッパー?

  3. 3

    異なるdimentions /サイズで一枚の画像にする方法

  4. 4

    2つの画像をcv2でオーバーレイすると、ノイズが発生します

  5. 5

    iOS-サイズの異なる2つの画像をマージする

  6. 6

    CV2で2つの画像をマージする

  7. 7

    openCV-pythonを使用して、2つの輪郭を同じサイズの2つの異なる画像にセグメント化する

  8. 8

    CV2とnumpyを使用して画像のサイズ変更と形状変更を試みています

  9. 9

    処理された画像を2値化するCV2

  10. 10

    OpenCV、Python:異なるサイズと透明な背景の2つの画像をステッチする方法

  11. 11

    cv2でskimage画像を使用する

  12. 12

    高さサイズの異なる画像を表示する方法

  13. 13

    cv2と私のカメラを使用している間の奇妙な画像

  14. 14

    PILとcv2の異なるピクセル情報

  15. 15

    cv::drawKeypoints が画像のサイズを変更するのはなぜですか?

  16. 16

    異なるサイズの2つの2次元配列を乗算します

  17. 17

    最大400枚の画像を元のサイズの.05%に縮小する最も簡単な方法

  18. 18

    サイズの異なる2つの行列を乗算する方法

  19. 19

    2つの異なるサイズのリストを圧縮する方法は?

  20. 20

    matplotlibでサイズの異なる2つの図を結合する方法は?

  21. 21

    条件付きでサイズの異なる2つのdf列を追加する

  22. 22

    サイズの異なる2つの列(パンダ)を分割する方法は?

  23. 23

    異なるサイズの2D信号の相関を計算する

  24. 24

    WPF:異なるサイズの2つのラベルを配置する方法

  25. 25

    Java、異なるサイズの2つのarrayListを追加する方法

  26. 26

    Rでサイズの異なる2つの行列をマージする

  27. 27

    サイズの異なる2つのリストにassertNotEqualsを使用する方法

  28. 28

    C でサイズの異なる 2 つの文字列をマージする

  29. 29

    異なるサイズの 2 つの行列を locb で乗算する

ホットタグ

アーカイブ