Có thể có hình ảnh đen trắng và màu trên cùng một cửa sổ bằng cách sử dụng lencaray opencv không? Làm thế nào tôi có thể có cả hai hình ảnh trên cùng một cửa sổ?Có thể có hình ảnh đen trắng và màu trên cùng một cửa sổ bằng cách sử dụng opencv không?
Trả lời
Có nó là, đây là một ví dụ, expaination trong các ý kiến:
import cv
#open color and b/w images
im = cv.LoadImageM('1_tree_small.jpg')
im2 = cv.LoadImageM('1_tree_small.jpg',cv.CV_LOAD_IMAGE_GRAYSCALE)
#set up our output and b/w in rgb space arrays:
bw = cv.CreateImage((im.width,im.height), cv.IPL_DEPTH_8U, 3)
new = cv.CreateImage((im.width*2,im.height), cv.IPL_DEPTH_8U, 3)
#create a b/w image in rgb space
cv.Merge(im2, im2, im2, None, bw)
#set up and add the color image to the left half of our output image
cv.SetImageROI(new, (0,0,im.width,im.height))
cv.Add(new, im, new)
#set up and add the b/w image to the right half of output image
cv.SetImageROI(new, (im.width,0,im.width,im.height))
cv.Add(new, bw, new)
cv.ResetImageROI(new)
cv.ShowImage('double', new)
cv.SaveImage('double.jpg', new)
cv.WaitKey(0)
của nó trong python, nhưng dễ dàng để chuyển đổi bất cứ điều gì .. câu trả lời
Fraxel đã giải quyết vấn đề với giao diện cv cũ. Tôi muốn hiển thị nó bằng cách sử dụng giao diện cv2, chỉ để hiểu làm thế nào điều này dễ dàng trong mô-đun cv2 mới. (Có thể nó sẽ là hữu ích cho khách truy cập trong tương lai). Dưới đây là các mã:
import cv2
import numpy as np
im = cv2.imread('kick.jpg')
img = cv2.imread('kick.jpg',0)
# Convert grayscale image to 3-channel image,so that they can be stacked together
imgc = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
both = np.hstack((im,imgc))
cv2.imshow('imgc',both)
cv2.waitKey(0)
cv2.destroyAllWindows()
Và dưới đây là kết quả tôi nhận:
Cảm ơn phiên bản mới. – mvr950
@ abid-rahman-k có thể thực hiện tương tự với video không? mà không biến một thành màu xám? –
cải thiện nhỏ để mã với văn bản hiện đại
concatenate
thay vì
hstack
được ngưng (stack cũng có thể được sử dụng)
import cv2
import numpy as np
im = cv2.imread('kick.jpg')
img = cv2.imread('kick.jpg',0)
# Convert grayscale image to 3-channel image,so that they can be stacked together
imgc = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
both = np.concatenate((im,imgc), axis=1) #1 : horz, 0 : Vert.
cv2.imshow('imgc',both)
cv2.waitKey(0)
cv2.destroyAllWindows()
Cảm ơn Fraxel rất nhiều. Đây là những gì tôi đang tìm kiếm. Một lần nữa cám ơn. – mvr950