0
我得到了RGB圖像(224x224x3)和覆蓋圖(224x224)。 現在我想將我的覆蓋圖應用爲我的RGB圖像上的紅色像素,因此我將其作爲灰度。覆蓋範圍從0到255.較高的值應該使紅色更強。
我試圖使用斯蒂芬的教程,但我無法適應它:tutorial。
這裏是我的代碼:將覆蓋圖應用於具有不同透明度的圖像
# RGB input, shape (224x224x3)
img = self.inputImage
# make to grayscale
img = np.average(img, axis=2)
rows, cols = img.shape[0], img.shape[1]
color_mask = np.zeros((rows, cols, 3))
# convert to uint8 to plot in QImage::Format_RGB888
img = img.astype(np.uint8)
overlay = self.outputImage.astype(np.uint8)
# normalize to range 0 to 1
img = (img*1.0-img.min())/(img.max()-img.min())
overlay = (overlay*1.0 - overlay.min())/(overlay.max() - overlay.min())
# create a mask, where only the red channels contains values
mask = np.zeros((rows,cols,3))
mask[:,:,0] = mask[:,:,0]+overlay
color_mask = mask
img_color = np.dstack((img, img, img))
# make everysthing to HSV colorspace
img_hsv = color.rgb2hsv(img_color)
color_mask_hsv = color.rgb2hsv(color_mask)
img_hsv[..., 0] = color_mask_hsv[..., 0]
img_hsv[..., 1] = color_mask_hsv[..., 1] * nAlpha
# convert back
img_masked = color.hsv2rgb(img_hsv)
# rescale
ov = img_masked*255
self.mainWindow_images.label_outputImg.setPixmap(
QPixmap(QImage(ov, ov.shape[1], ov.shape[0], ov.shape[1] * 3, QImage.Format_RGB888)))
結果只是以黑色爲主畫面,從而改變與nAlpha一點點。 result_screenshot
我提到的博客帖也有相關的代碼。 :) –