Как заполнить изображение OpenCV одним сплошным цветом?
Как заполнить изображение OpenCV одним сплошным цветом?
Ответ 1
Использование API OpenCV C с IplImage* img
:
Используйте cvSet(): cvSet(img, CV_RGB(redVal,greenVal,blueVal));
Используя OpenCV С++ API с cv::Mat img
, используйте либо:
cv::Mat::operator=(const Scalar& s)
как в:
img = cv::Scalar(redVal,greenVal,blueVal);
или более общий, поддержка маски, cv::Mat::setTo()
:
img.setTo(cv::Scalar(redVal,greenVal,blueVal));
Ответ 2
Здесь, как сделать cv2 в Python:
# 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)
Ответ 3
Простейшим является использование класса Matrix OpenCV:
img=cv::Scalar(blue_value, green_value, red_value);
где img
было определено как cv::Mat
.
Ответ 4
Для 8-битного (CV_8U) изображения OpenCV синтаксис:
Mat img(Mat(nHeight, nWidth, CV_8U);
img = cv::Scalar(50); // or the desired uint8_t value from 0-255
Ответ 5
Создайте новое изображение 640x480 и заполните его фиолетовым (красным + синим):
cv::Mat mat(480, 640, CV_8UC3, cv::Scalar(255,0,255));
Примечание:
- высота перед шириной
- тип CV_8UC3 означает 8-битный беззнаковый int, 3 канала
- Цветовой формат: BGR
Ответ 6
Если вы используете Java для OpenCV, вы можете использовать следующий код.
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