如果您将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
0
如果您将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
0
将OpenCV C API与IplImage* img
:
使用cvSet() : cvSet(img, CV_RGB(redVal,greenVal,blueVal));
将OpenCV C ++ API与cv::Mat img
使用,然后使用以下任一方法:
cv::Mat::operator=(const Scalar& s)
如下:
img = cv::Scalar(redVal,greenVal,blueVal);
或更cv::Mat::setTo()
支持cv::Mat::setTo()
:
img.setTo(cv::Scalar(redVal,greenVal,blueVal));
0
使用numpy.full
。这是一个Python,可创建灰色,蓝色,绿色和红色图像,并以2x2网格显示。
import cv2
import numpy as np
gray_img = np.full((100, 100, 3), 127, np.uint8)
blue_img = np.full((100, 100, 3), 0, np.uint8)
green_img = np.full((100, 100, 3), 0, np.uint8)
red_img = np.full((100, 100, 3), 0, np.uint8)
full_layer = np.full((100, 100), 255, np.uint8)
# OpenCV goes in blue, green, red order
blue_img[:, :, 0] = full_layer
green_img[:, :, 1] = full_layer
red_img[:, :, 2] = full_layer
cv2.imshow('2x2_grid', np.vstack([
np.hstack([gray_img, blue_img]),
np.hstack([green_img, red_img])
]))
cv2.waitKey(0)
cv2.destroyWindow('2x2_grid')
0
创建一个新的640x480图像,并用紫色(红色+蓝色)填充它:
cv::Mat mat(480, 640, CV_8UC3, cv::Scalar(255,0,255));
注意:
0
最简单的方法是使用OpenCV Mat类:
img=cv::Scalar(blue_value, green_value, red_value);
其中img
被定义为cv::Mat
。
0
对于8位(CV_8U)OpenCV映像,语法为:
Mat img(Mat(nHeight, nWidth, CV_8U);
img = cv::Scalar(50); // or the desired uint8_t value from 0-255
0
这是在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)
0
如何用一种纯色填充OpenCV图像?