2014-01-27 5 views
0

Я хотел бы отобразить изображение DICOM в моей программе java. Я использую pixelmed. Однако я обнаружил, что я не могу правильно отобразить правильный контраст. Контраст слишком низкий.Dicom bufferedImage from pixelmed имеет низкий контраст

Вот мой код:

(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 , setImage() этого класса JPanel вызовет setImage() класса JFrame.

setImage Класс JFrame (в) код:

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

@ Нангидрин, я не знаю цветовую модель. Но это выглядит по-другому, когда я открываю его в другом приложении. – user3241775

+0

Вы всегда можете попробовать напечатать цветовую модель (например: 'System.out.println (source.getColorModel())'), чтобы узнать, дает ли это нам некоторые подсказки. И, может быть, после некоторых снимков экрана, сравнивая «другое приложение» с вашим? Вы пытались использовать 'ColorConvertOp' вместо того, чтобы просто рисовать на RGB' BufferedImage'? Это может быть более точным в цветовых преобразованиях ICC. – haraldK

ответ

0

У вашего изображения установленная ширина окна/центр окна? Убедитесь, что вы установили это (или разрешите пользователю отрегулировать его). См. SingleImagePanel - существуют некоторые статические методы для применения окон к вашему буферному изображению.

Смежные вопросы