2014-01-27 40 views
0

我想在我的java程序中顯示DICOM圖像。我用pixelmed。但是,我發現我無法正確顯示正確的對比度。對比度太低。pixelmed的dicom bufferedImage對比度很低

這裏是我的代碼:

(SourceImage是PixelMed,chosenImageFile.getPath()提供一個類的DICOM文件的人的路。)

SourceImage dimg = new SourceImage(chosenImageFile.getPath()); 
BufferedImage image = dimg.getBufferedImage(); 

BufferedImage source = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB); 

Graphics2D g2d = source.createGraphics(); 
g2d.drawImage(image, 0, 0, null); 
dicomImgDisplayer1.setImage(source); 

dicomImgDisplayer1是一個類擴展JPanel 。這個JPanel類的setImage()將調用JFrame類的setImage()。

JFrame類的setImage()代碼:

public void setImage(BufferedImage image) { 
    this.image = image; 
    setPreferredSize(new Dimension(image.getWidth(), image.getHeight())); 
    repaint(); 
    revalidate(); 
} 

public void paint(Graphics graphics) { 
    Graphics2D g2d = (Graphics2D) graphics; 
    g2d.drawImage(image, null, 0, 0); 
} 

是不是有毛病顏色模型?請幫忙。謝謝。

+0

圖像在另一個應用程序中看起來不同,還是假設對比是錯誤的?原始圖像的顏色模型是什麼? – Nanhydrin

+0

@Nhydhydrin,我不知道顏色模型。但是當我在另一個應用程序中打開它時看起來不同。 – user3241775

+0

您可以隨時嘗試打印顏色模型(即:'System.out.println(source.getColorModel())'),看看是否給我們提供了一些線索。也許發佈一些屏幕截圖,比較「另一個應用程序」與你的?你是否嘗試過使用'ColorConvertOp'而不是僅僅在RGB'BufferedImage'上繪畫?在ICC顏色轉換中可能更準確。 – haraldK

回答

0

您的圖像是否有指定的窗口寬度/窗口中心?一定要設置(或允許用戶調整它)。請參閱SingleImagePanel - 有一些靜態方法可將窗口應用於緩存的圖像。