2016-12-29 23 views
0

RGB画像(224x224x3)とオーバーレイ(224x224)があります。 今、私は自分のオーバーレイをRGBイメージ上の赤いピクセルとして適用したいので、それをグレースケールにします。オーバーレイの範囲は0〜255です。値を大きくするほど赤が強くなります。
私はStefanのチュートリアルを使用しようとしましたが、私は適応できませんでした: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

答えて

1

私は、これはあなたが探しているものだと思う:

enter image description here

赤い部分がオーバーレイです。

私はOpenCVを使用してこれを行うことができました。少し助けを借りてTHIS POSTから私は数か月前に読んでいます。

このブログポストには、画像処理における他の多くの興味深いものが含まれています。 乾杯!

+0

私が言及したblogpostにも関連コードがあります。 :) –

関連する問題