web-dev-qa-db-ja.com

OpenCV画像を1つの単色で塗りつぶす方法は?

OpenCV画像を1つの単色で塗りつぶす方法は?

67
Rella

_IplImage* img_でOpenCV C APIを使用する:

cvSet()cvSet(img, CV_RGB(redVal,greenVal,blueVal));を使用します

_cv::Mat img_でOpenCV C++ APIを使用し、次のいずれかを使用します。

cv::Mat::operator=(const Scalar& s) のように:

_img = cv::Scalar(redVal,greenVal,blueVal);
_

または より一般的な、マスクサポート、cv::Mat::setTo()

_img.setTo(cv::Scalar(redVal,greenVal,blueVal));
_
90
Adi Shavit

Pythonでcv2を使用する方法は次のとおりです。

# Create a blank 300x300 black image
image = np.zeros((300, 300, 3), np.uint8)
# Fill image with red color(set each pixel to red)
image[:] = (0, 0, 255)

特定のRGBカラーで塗りつぶされた新しい空白の画像を作成する方法のより完全な例を次に示します

import cv2
import numpy as np

def create_blank(width, height, rgb_color=(0, 0, 0)):
    """Create new image(numpy array) filled with certain color in RGB"""
    # Create black blank image
    image = np.zeros((height, width, 3), np.uint8)

    # Since OpenCV uses BGR, convert the color first
    color = Tuple(reversed(rgb_color))
    # Fill image with color
    image[:] = color

    return image

# Create new blank 300x300 red image
width, height = 300, 300

red = (255, 0, 0)
image = create_blank(width, height, rgb_color=red)
cv2.imwrite('red.jpg', image)
23
Kimmo

最も簡単なのは、OpenCV Matクラスを使用することです。

img=cv::Scalar(blue_value, green_value, red_value);

ここで、imgcv::Matとして定義されました。

10

新しい640x480画像を作成し、紫(赤+青)で塗りつぶします。

cv::Mat mat(480, 640, CV_8UC3, cv::Scalar(255,0,255));

注意:

  • 幅の前の高さ
  • タイプCV_8UC3は、8ビット符号なし整数、3チャネルを意味します
  • カラーフォーマットはBGRです
7
Stéphane

8ビット(CV_8U)OpenCVイメージの場合、構文は次のとおりです。

Mat img(Mat(nHeight, nWidth, CV_8U);
img = cv::Scalar(50);    // or the desired uint8_t value from 0-255
6
AlainD

OpenCVにJavaを使用している場合は、次のコードを使用できます。

Mat img = src.clone(); //Clone from the original image
img.setTo(new Scalar(255,255,255)); //This sets the whole image to white, it is R,G,B value
4
Karthik N G

つかいます - numpy.full 。 Python画像全体をグレーに設定し、符号なし8ビット整数の結果タイプを保証する例です。

import cv2
import numpy as np
img = np.full((100, 100, 3), 127, np.uint8) 
cv2.imshow('single color', img)
cv2.waitKey(0)
cv2.destroyWindow('single color')
1
orangepips