說我們有我們通過OpenCV的某種方式修改圖像:OpenCV:如何在圖像上應用彩虹漸變圖?
現在,我們很樂意對其適用Gradient Map (like one we can apply via photoshop):
所以我不知道如何應用漸變映射(彩虹色)通過openCV?
說我們有我們通過OpenCV的某種方式修改圖像:OpenCV:如何在圖像上應用彩虹漸變圖?
現在,我們很樂意對其適用Gradient Map (like one we can apply via photoshop):
所以我不知道如何應用漸變映射(彩虹色)通過openCV?
以下是使用Python創建假/僞彩色圖像的方法,轉換爲C++應該非常簡單。概述:
有幾個漁獲雖然的...
來源:到:
如果這個改變,我們可以通過補償色調的元素和包裝他們周圍180(否則會飽和),這樣做是很重要的。該代碼通過在該截斷點掩蓋圖像然後適當地抵消來實現這一點。使用120偏移,產生你的colorscale:
來源:到:
和圖像處理方式似乎與您的匹配非常好(在末尾)。
import cv
image_bw = cv.LoadImage("TfBmw.jpg", cv.CV_LOAD_IMAGE_GRAYSCALE)
image_rgb = cv.LoadImage("TfBmw.jpg")
#create the image arrays we require for the processing
hue=cv.CreateImage((image_rgb.width,image_rgb.height), cv.IPL_DEPTH_8U, 1)
sat=cv.CreateImage((image_rgb.width,image_rgb.height), cv.IPL_DEPTH_8U, 1)
val=cv.CreateImage((image_rgb.width,image_rgb.height), cv.IPL_DEPTH_8U, 1)
mask_1=cv.CreateImage((image_rgb.width,image_rgb.height), cv.IPL_DEPTH_8U, 1)
mask_2=cv.CreateImage((image_rgb.width,image_rgb.height), cv.IPL_DEPTH_8U, 1)
#convert to cylindrical HSV color space
cv.CvtColor(image_rgb,image_rgb,cv.CV_RGB2HSV)
#split image into component channels
cv.Split(image_rgb,hue,sat,val,None)
#rescale image_bw to degrees
cv.ConvertScale(image_bw, image_bw, 180/256.0)
#set the hue channel to the greyscale image
cv.Copy(image_bw,hue)
#set sat and val to maximum
cv.Set(sat, 255)
cv.Set(val, 255)
#adjust the pseudo color scaling offset, 120 matches the image you displayed
offset=120
cv.CmpS(hue,180-offset, mask_1, cv.CV_CMP_GE)
cv.CmpS(hue,180-offset, mask_2, cv.CV_CMP_LT)
cv.AddS(hue,offset-180,hue,mask_1)
cv.AddS(hue,offset,hue,mask_2)
#merge the channels back
cv.Merge(hue,sat,val,None,image_rgb)
#convert back to RGB color space, for correct display
cv.CvtColor(image_rgb,image_rgb,cv.CV_HSV2RGB)
cv.ShowImage('image', image_rgb)
# cv.SaveImage('TfBmw_120.jpg',image_rgb)
cv.WaitKey(0)
你的形象與offset = 120
處理:
@如果我們想通過使用opencv在像這裏一樣的圖像上使用Photoshop的漸變色彩空間http://www.fudgegraphics.com/2008/10/create-a-realistic-outer-space-scene-in-photoshop/ – AHF 2014-04-28 16:10:14
現在存在一個稱爲applyColorMap OpenCV的功能,這使得這個過程瑣碎。下面的代碼將這樣的伎倆
image_cm = cv2.applyColorMap(image, cv2.COLORMAP_JET))
這是結果:
好後飛機,什麼都不知道關於OpenCV,但是該過程分爲兩部分,RGB轉換爲灰度,然後使用該漸變將灰度轉換回RGB。參見[這裏](http://nashruddin.com/opencv-examples-for-operation-on-images.html/5)第一部分,和[這裏](http://stackoverflow.com/questions/6686868/opencv-color-mapping-with-direct-pixel-access)。 – scientiaesthete 2012-04-06 23:36:42